我正在研究一个带有NodeJS和Express的API(以及更多东西,如mongo,套接字等),但我坚持一个非常简单的步骤,我相信,我只是想从POST req对象获取信息,但是我试图访问时收到错误req.body
这就是我所拥有的:
var express = require('express'),
http = require('http'),
path = require('path'),
fs = require('fs'),
io = require('socket.io');
dynroute = require('dynroute');
var app = express();
app.set('port', process.env.PORT || 3999);
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(app.router);
app.use(express.bodyParser());
app.post('/user', function(req, res) {
console.log(JSON.stringify(req.body));
res.send(req.body.self);
});
http.createServer(app).listen(app.get('port'), function ()
{
console.log('App Server is now running at:' + app.get('port'));
});
Run Code Online (Sandbox Code Playgroud)
在console.log(JSON.stringify(req.body));我得到undefined和res.send(req.body.self);我得到TypeError: Cannot read property 'self' of undefined
我已经seaching这种类型的错误,通常的问题是,人们不包括app.use(express.bodyParser());中间件,我还使用tryied app.use(express.urlencoded());和app.use(express.json());,也没有任何工作.
如果我这样做,console.log(req)我可以看到整个对象但我无法看到 …
我正在定义我的应用程序模型,我为每个模型定义了单独的文件,我的问题是,我需要创建一个使用子文档的模型,但是在另一个文件上,我该如何使用该模式在我的模特?我的意思是我见过的所有例子都在同一个文件中声明了Child模型和Parent,例如:
var childSchema = new Schema({ name: 'string' });
var parentSchema = new Schema({
children: [childSchema]
});
Run Code Online (Sandbox Code Playgroud)
我有一个调用的文件user.js定义了用户模型:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var userSchema = new Schema({
_id : Schema.Types.ObjectId,
username : String,
});
module.exports = mongoose.model( 'User', userSchema );
Run Code Online (Sandbox Code Playgroud)
在另一个名为sport.jsi的文件中,我还有其他运动模型定义:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var sportSchema = new Schema({
_id : Schema.Types.ObjectId,
name : String
});
module.exports = mongoose.model( 'Sport', sportSchema );
Run Code Online (Sandbox Code Playgroud)
所以在我的用户模型中,我需要为用户将遵循的体育定义一个字段,但我不知道如何定义该子文档,因为体育定义在另一个文件上,我试过这个:
var mongoose = require('mongoose'); …Run Code Online (Sandbox Code Playgroud)