Javascript “节点restful不保存文档”;“目录”;到MongoDb

Javascript “节点restful不保存文档”;“目录”;到MongoDb,javascript,node.js,mongodb,rest,mongoose,Javascript,Node.js,Mongodb,Rest,Mongoose,我正在尝试使用NodeJS将文档保存到MongoDb。 我正在使用Express、Mongoose、Node Restful为我做艰苦的工作。然而,尽管它确实在MongoDb中创建了文档,但它们并没有实际的内容。我只有 [ { “_id”:“5460ab83c9e8f9481063df82”, “_v”:0 }, { “_id”:“5460ac00c9e8f9481063df83”, “_v”:0 }, { “_id”:“5460ae36c9e8f9481063df85”, “_v”:0 },

我正在尝试使用NodeJS将文档保存到MongoDb。 我正在使用Express、Mongoose、Node Restful为我做艰苦的工作。然而,尽管它确实在MongoDb中创建了文档,但它们并没有实际的内容。我只有

[ { “_id”:“5460ab83c9e8f9481063df82”, “_v”:0 }, { “_id”:“5460ac00c9e8f9481063df83”, “_v”:0 }, { “_id”:“5460ae36c9e8f9481063df85”, “_v”:0 }, { “_v”:0 }, { “_id”:“5460afb6be7938bc1469ae97”, “_v”:0 }, { “_id”:“5460fe9088d68e2516cdf572”, “_v”:0 }, { “_id”:“5460fecfd47cba3916fba0ab”, “_v”:0 }, { “_id”:“5460fed5d47cba3916fba0ac”, “_v”:0 }, { “_id”:“5460fed8d47cba3916fba0ad”, “_v”:0 }, { “_id”:“5460ff079b60285016dfd0da”, “_v”:0 } ]

正如您所看到的,实际内容没有被保存,出于测试目的,它只是一个名称

我的模式(models/users.js)

我的api(api/api.js)

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

运行server.js的nodemon的输出是

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

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


module.exports = restful.model('user',userSchema );
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;
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);
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
我使用Postman chrome扩展来填充数据库。创建的空文档中没有我以键值对形式发布的数据。名字叫“戴夫”


总之,我通过节点restuful和mongoose将数据发送到mongodb,尽管文档是创建的,但它不包含数据。有人能看到问题吗?

在的邮递员中添加标题

内容类型:应用程序/json


不要使用表单字段,而是将其作为原始json发送。为我工作。

我从未对stackoverflow发表评论,但这对我来说是个问题,而且我似乎一直遇到这个问题。所以,我想帮助大家

首先将标题设置为
内容类型:application/json

不要将
包含到
上下文类型中

其次,选择raw作为输入类型。虽然这不是JSON教程,但postman注意到单引号和双引号之间的区别

使用双引号,即
,而不是
。其次,双引号引键,如果键的值是字符串,则双引号引表达式

人们总是建议键应该是单字符串(必要时使用驼峰符号)。作为所谓的编程老手

我认为,如果JSON对象的键是变量而不是字符串,那么postman会处理,因为符号,但这可能是postman的问题。一张图片可以告诉我一千个单词,所以我包含了一张图片

请注意,如果您在添加特定密钥时遇到问题,则可能是您的模型。继续年轻的蚱蜢

问候

昆汀·梅奥

p.S我与邮递员没有任何关系,但我强烈建议任何试图使用API的人使用它。

我没有发布足够的图片,所以如果有人验证我,请随意在这个页面上重新发布图片(我只是想帮助其他人)。

对我有效的是选择x-www-form-urlencoded,而不是默认选择的表单数据

也有同样的问题。如果你不这样做,我会很快给你奖金。