我正在使用node-webkit构建一个基于expressjs和mongoose的应用程序。我基本上都是新手。
我有一个mongoDb在线托管,我尝试在我的应用程序中使用它,但我错过了一些东西
我在模型文件夹db.js中创建,我在那里连接db
var mongoose = require('mongoose');
mongoose.connect('mongodb://user:password@ds012345.mlab.com:port/mydb') //this isn't the real link
然后是我的模型,clients.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var clientSchema = new Schema ({
name: String,
//other fields
});
var client = mongoose.model('client', clientSchema);
module.exports = client;
然后,在我的app.js
中var db = require('./model/db')
我也在使用路线,所以在我的index.js中我得到了
var client = require('../model/clients')
但是我不能使用任何功能(保存,查找,ecc。),我可以创建模型。
我认为我没有以正确的方式连接所有模块,我之前使用的是diskdb,并且我在我的index.js中连接到它,但我尝试的方式相同,但无论如何都无法正常工作。 此外,当我构建应用程序时,我的mongoose连接状态为2。
答案 0 :(得分:0)
以下是一些事项:
什么是ecc
?你应该连接到这样的东西:mongoose.connect('mongodb://localhost:27017/test');
27017
是MongoDB的默认端口,test
是数据库的名称。另外,请确保使用mongod
启动mongo服务器,然后运行mongo console mongo
。
您的字段应指定数据类型:
var clientSchema = new Schema ({
name: String,
age: Number
});
所以你想把文件保存到数据库中:
var client = mongoose.model('client', clientSchema);
var data = {
nome: 'something'
};
var user = new client(data);
user.save(function(err) {
if(err) console.log(err);
});
在您的路线中,您可以执行以下操作来查询并将数据发送回请求:
var express = require('express');
var router = express.Router();
var clientSchema = require('../models/clientSchema');
router.get('/', function(req, res, next) {
UserSchema.find({} , function(err, data) {
if (err) console.log(err);
res.render('index', {
data: data
});
});
});
module.exports = router;
希望这有帮助!