gpt4 book ai didi

node.js - 使用NodeJS在MongoDB上插入数据只保存ID

转载 作者:太空宇宙 更新时间:2023-11-04 01:44:29 24 4
gpt4 key购买 nike

所以我有这个 Express、NodeJS、MongoDB(mLab) 作为我的项目

我已在 Postman 上将三个字符串插入到 http://localhost:3000/api/comment 并且已成功插入,但当我在 mLab.com 上检查我的数据库时,它只包含一个 ID

{
"_id": {
"$oid": "5b7d0f70f097a71eccb9b360"
},
"__v": 0
}

我有一个这样的模型

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var UserSchema = new Schema({
name: String,
comment: String,
date: String
});

module.exports = mongoose.model("User", UserSchema);

我的 server.js 是这样的

var express = require('express');
var morgan = require('morgan');
var bodyParser = require('body-parser');
var config = require('./config');
var mongoose = require('mongoose');

var app = express();

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(morgan('dev'));

var api = require("./app/routes/api")(app, express);

app.use('/api', api);

app.get('*',(req, res)=>{
res.sendFile(__dirname + '/public/views/index.html');
});

mongoose.connect(config.database, { useNewUrlParser: true },(err)=>{
if(err){
console.log(err);
}else{
console.log('Connected to DB');
}
});



app.listen(config.port, (err) =>{
if(err){
console.log(err);
}else{
console.log('Listening on port:'+ config.port);
}
});

和我的 api.js,我的 POST 方法是这样的

var User = require('../models/user');


module.exports = function(app,express){

var api = express.Router();

api.post('/comment', function(req,res){
var user = new User({
name: req.body.name,
comment: req.body.comment,
date: req.body.date
});

user.save(function(err){
if(err){
res.send(err);
return;
}

res.json({ message: "User has commented"});
});
});

return api;
}

有什么想法为什么它只包含 ID 而不是我插入的那三个字符串吗?

最佳答案

我认为您的数据库连接应该在初始化 Express 应用程序之后进行,然后您的中间件和路由可以跟随。

步骤

1. var app = express();

2. mongoose.connect(config.database, { useNewUrlParser: true },(err)=>{ 如果(错误){
控制台.log(错误);
}别的{
console.log('已连接到数据库');
}
});

3.中间件

4.路由

我认为问题与 Nodejs 解析代码行的方式有关。

关于node.js - 使用NodeJS在MongoDB上插入数据只保存ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51961810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com