node-restful 不将文档“内容”保存到 MongoDb

Dav*_*don 5 javascript rest mongoose mongodb node.js

我正在尝试使用 NodeJS 将文档保存到 MongoDb。我正在使用 Express、Mongoose、Node-Restful 为我完成这些艰苦的工作。但是,尽管它确实在 MongoDb 中创建了文档,但它们并不是实际内容。我只得到

[ { "_id": "5460ab83c9e8f9481063df82", "__v": 0 }, { "_id": "5460ac00c9e8f9481063df83", "__v": 0 }, { "_id": "5460ae, "df06,df80c"{0} "__v": 0 }, { "_id": "5460afb6be7938bc1469ae97", "__v": 0 }, { "_id": "5460fe9088d68e2516cdf572", "__v": 0 }, { "_id": "3945bcf"5946 ": 0 }, { "_id": "5460fed5d47cba3916fba0ac", "__v": 0 }, { "_id":"5460fed8d47cba3916fba0ad", "__v": 0 }, { "_id": "5460ff079b60285016dfd0da", "__v": 0 } ]

如您所见,实际内容并未被保存,出于测试目的,这只是一个名称。

我的架构 (models/users.js)

var restful = require('node-restful');
var mongoose = restful.mongoose;

var userSchema = new mongoose.Schema({
name: String
});


module.exports = restful.model('user',userSchema );
Run Code Online (Sandbox Code Playgroud)

我的 api (api/api.js)

var express = require('express');
var router = express.Router();


var userModel = require('../models/users')

userModel.methods(['get','put','post','delete']);
userModel.register(router,'/user');

module.exports = router;
Run Code Online (Sandbox Code Playgroud)

和应用程序代码(server.js)

console.log("Adding Requires");
var express = require('express');
var fs = require('fs');
var urlEncoded = require('urlencoded-request-parser');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var override = require('method-override');
var rest = require('node-restful');

console.log("Creating Server Object");
var server = express();
server.locals.moment = require('moment');
server.set('ServerVersion', "5.0.1.7");

console.log("Server setting port");
var port = process.env.port || 1337;

console.log("Connecting to MongooseDB");

mongoose.connect("mongodb://mvm-mongodb.cloudapp.net/ccslabs-main");

var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
  console.log('Connected to MongoDB successfully');
});


server.disable('x-powered-by');

console.log("Server setting uses");
server.use(urlEncoded());
server.use(bodyParser.urlencoded({extended: true}));
server.use(bodyParser.json());
server.use(override());


console.log("Server setting routes");
var routePath="./routes/"; 
fs.readdirSync(routePath).forEach(function(file) {
    var route=routePath+file;
    console.log("\tAdding routes: " + route)
    require(route)(server);
});

console.log("\tAdding API routes");
server.use('/api',require('./api/api'));

console.log("\tAdding Static Files routes");
server.use(express.static(__dirname + "/content"));

console.log("Server creating sets");
server.set('view engine', 'ejs');
server.set('views', __dirname);

server.listen(port);
console.log("Server listening on port " + port);
Run Code Online (Sandbox Code Playgroud)

nodemon 在运行 server.js 时的输出是

Adding Requires
Creating Server Object
Server setting port
Connecting to MongooseDB
Server setting uses
Server setting routes
        Adding routes: ./routes/home.js
        Adding routes: ./routes/login.js
        Adding routes: ./routes/submission.js
        Adding routes: ./routes/testing.js
        Adding API routes
        Adding Static Files routes
Server creating sets
Server listening on port 1337
Connected to MongoDB successfully
Run Code Online (Sandbox Code Playgroud)

我使用 Postman chrome 扩展填充数据库,创建了一个空文档,没有我以键值对形式发布的数据。名字“戴夫”

邮递员输出

总而言之,我通过 node-restuful 和 mongoose 将数据发送到 mongodb,尽管创建了文档,但它不包含数据。任何人都可以看到问题吗?

elz*_*lzi 3

在邮递员中添加标头

Content-Type : application/json

并且不使用表单字段,而是以原始 json 形式发送。为我工作。