Мне нужен API для андроид для вставки данных в MongoDB, я следую this, ноNode.js Вставка данных MongoDB Web API, bodyParser выпуск
var song = req.body; TypeError: Cannot read property 'body' of undefined
Я Google несколько ответ, который нужно установить bodyParser, поэтому я следую this установить bodyParser, но все-таки получить
var song = req.body; TypeError: Cannot read property 'body' of undefined
Я не уверен, где я не прав, пожалуйста, помогите
приложение код
var express = require('express'),
songs = require('./routes/route');
var app = express();
var bodyParser = require('body-parser');
var jsonParser = bodyParser.json();
app.post('/songs', jsonParser, function (req, res) {
if (!req.body) return res.sendStatus(400);
// create user in req.body
});
app.get('/', function (req, res) {
res.send('Hello World!');
});
app.listen(3000, function() {
console.log('Example app listening on port 3000!');
});
app.get('/songs',songs.addSong);
маршрут хлев
var mongoose = require('mongoose');
var mongo = require('mongodb');
var uri = "mongodb://XXXXXX:[email protected]:61365/aweitest";
mongoose.connect(uri);
// we're connected!
var db = mongoose.connection.db;
var BSON = require('bson').BSONPure;
var body = require('body-parser');
db.on('error', console.error.bind(console, 'connection errrrrrrrror:'));
//db = mongoose.connection.db;
db.once('open', function() {
console.log("mongodb is connected!!");
});
exports.addSong = function(req, res) {
var song = req.body;
console.log('Adding song: ' + JSON.stringify(song));
db.collection('songs', function(err, collection) {
collection.insert(song, {safe:true}, function(err, result) {
if (err) {
res.send({'error':'An error has occurred'});
} else {
console.log('Success: ' + JSON.stringify(result[0]));
res.send(result[0]);
}
});
});
}
В вашем коде приложения: 'var express = require ('express'); var bodyParser = require ('body-parser'); var app = express(); app.use (bodyParser()); ' Укажите модули ** В этом конкретном порядке **. А потом посмотрите, работает ли он. Вы фактически не использовали bodyParser в своем приложении. Чтобы использовать его, вы должны указать 'app.use (bodyParser());' Посмотрите, поможет ли это и дайте мне знать –
@SiddharthAjmera Спасибо! Я делаю то, что вы говорите, у него нет ошибки только в этом 'Fri, 19 Feb 2016 16:09:19 GMT body-parser устарел bodyParser: используйте отдельные json/urlencoded middlewares на app.js: 5: 9 Пт, 19 фев 2016 16:09:19 GMT body-parser устарел неопределенный расширенный: предоставить расширенный вариант в .. \ .. \ node_modules \ body-parser \ index.js: 105: 29 Im, используя Curl для проверки этого api, curl дайте мне немного 't решить проблему, пытаясь понять это –
@SiddharthAjmera - это то, что, возможно, поможет мне использовать завиток, чтобы проверить, что мой api работает сейчас или сейчас? –