【发布时间】:2019-04-03 22:56:41
【问题描述】:
我来找你是因为我有一个我无法解决的问题。 我使用 nodejs、express 和 mongodb,尤其是 mongoose。
我的快速服务器工作正常,但我无法将文档插入我的数据库,我不知道为什么。使用“console.log()”,我看到从未调用过 mongoose.model.save,或者此函数存在问题。
我的 app.js
var express = require('express');
var bodyParser = require('body-parser');
var connect = require('connect');
var app = express();
var port = process.env.PORT || 8080;
// Configuration
app.use(connect.logger('dev'));
app.use(connect.json());
app.use(connect.urlencoded());
app.use( bodyParser.json() ); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
extended: true
}));
app.listen(port);
require('./routes/routes.js')(app);
console.log('The App runs on port ' + port);
我的 route.js
var writeData = require('/config/writeData');
var baseurl = '/niceproject'
module.exports = function(app) {
app.get(baseurl + '/', function(req, res) {
res.end("Node-Android-Project");
});
app.post(baseurl + '/writeTemp', function(req, res) {
var heure = req.body.heure;
var temperature = req.body.temperature;
console.log('req.body' + req.body);
writeData.writeTemperature(heure,temperature,function(found){
console.log(found);
res.json(found);
});
});
}
我的 writeData.js
var mongoose = require('mongoose');
var model = require('/config/models.js');
var temperatureCollection = model.temperature;
var personneCollection = model.personne ;
var sonCollection = model.sound;
exports.writeTemperature = function(heure,temperature,callback) {
var newTemperature = new temperatureCollection({
id : 1,
heure: new Date(),
temperature : temperature
});
console.log('new temp: ' + newTemperature);
newTemperature.save(function(err){
console.log('test');
if(err){
console.log('erreur' + err);
callback(err);
}
console.log(newTemperature);
callback({'response':"temperature ajouté"});
});
}
还有我的model.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var temperatureSchema = mongoose.Schema({
id : Number,
temperature : Number,
heure : Date
});
var personneSchema = mongoose.Schema({
id : Number,
nbPersonne : Number,
heure : Date
});
var sonSchema = mongoose.Schema({
id : Number,
niveauDb : Number,
heure : Date
});
mongoose.connect('mongodb://localhost/nightAdvisorDatabase');
var temperatureModel = mongoose.model('temperature', temperatureSchema);
var personneModel = mongoose.model('personne', personneSchema);
var soundModel = mongoose.model('niveauDb',sonSchema);
module.exports = {
temperature : temperatureModel,
personne : personneModel,
sound : soundModel
};
所以,当我使用 /niceproject/writeTemp 路径发出发布请求时,我可以在 writeData 中看到 newTemperatureobject 以及请求发送的当前日期和温度,但我在使用 newTemperature.save 时遇到问题,没有任何反应
感谢您阅读我 希望比你能帮助我,对不起我的大概英语
【问题讨论】:
-
你有什么错误吗?!
-
你应该为 Mongoose 连接添加一些错误检查,看看你是否真的连接了。见here。您需要的是带有
mongoose.connection.on(...的行。看到您在应用启动时实际上已建立连接。 -
我添加了 mongoose.connection.on('connected') ('error) 和 ('disconnected') 但也没有任何结果。但是当我尝试 sudo service mongod status 我有:Active: active (running) 如果我运行 mongoShell 并尝试显示 dbs,我没有应该创建的那个
标签: javascript node.js mongodb mongoose mongoose-schema