NodeJS:返回未定义的数据类型
Posted
技术标签:
【中文标题】NodeJS:返回未定义的数据类型【英文标题】:NodeJS: Datatype returned undefined 【发布时间】:2016-04-24 16:19:20 【问题描述】:这是我的 controller.js
$scope.saveDetails = function()
if($scope.editMode == false)
//$scope.hidesave = false;
//$scope.person = "";
console.log("i am in save")
console.log($scope.person);
$http.post('/details',$scope.person).success(function(response)
console.log(response);
refresh();
)
$state.go("itemList");
这是我的 Route.JS
module.exports = function (app)
console.log("Inside Routes");
app.get('/details', require('./details/details').getDetails);
app.get('/details/:id', require('./details/details').getDetails_id);
app.post('/details', require('./details/details').saveDetails);
app.delete('/details/:id',require('./details/details').deleteDetails);
app.post('/details/:id',require('./details/details').updateDetails);
;
这是我的 details.js,实际实现是:
exports.saveDetails = function (req, res)
console.log("Hi");
console.log("this is to save: ",req.body);
var person = new req.app.schema.detailsdb(req.body);
person.save(req.body,function(err,docs)
res.json(docs);
console.log("docs: ",docs)
);
;
当我尝试将数据从 html 页面插入 DB 时,这里 req.body 返回 undefined,我使用 Mongoose 编写了 DB
【问题讨论】:
你是否包含了 express body-parser 中间件? 【参考方案1】:要解析 JSON,您需要包含 express body-parser 模块并在路由之前使用它:
var bodyParser = require('body-parser')
// parse application/json
app.use(bodyParser.json())
// the rest of your routes here.
app.get('/details', require('./details/details').getDetails);
app.get('/details/:id', require('./details/details').getDetails_id);
app.post('/details', require('./details/details').saveDetails);
app.delete('/details/:id',require('./details/details').deleteDetails);
app.post('/details/:id',require('./details/details').updateDetails);
https://github.com/expressjs/body-parser/blob/master/README.md
【讨论】:
谢谢,这解决了我的错误...非常感谢您.. :)以上是关于NodeJS:返回未定义的数据类型的主要内容,如果未能解决你的问题,请参考以下文章
nodejs/mongoDB - 类型错误:无法读取未定义的属性“集合”
要求函数的返回数据变为未定义(Js,NodeJs,Discord.js)[重复]
NodeJS(服务器):ReferenceError:当类型:模块时未定义要求
“未捕获的类型错误:在 angularJS/NodeJS 中使用条带支付方法 Stripe.charges.create() 时无法读取未定义的属性‘创建’”