Javascript Moongose、expressjs和节点webkit
我正在使用基于expressjs和mongoose的NodeWebKit构建一个应用程序。基本上我对这一切都不熟悉 我有一个在线托管的mongoDb,我尝试在我的应用程序中使用它,但我遗漏了一些东西 我在模型文件夹db.js中创建了它,在这里我与数据库连接Javascript Moongose、expressjs和节点webkit,javascript,node.js,mongodb,mongoose,node-webkit,Javascript,Node.js,Mongodb,Mongoose,Node Webkit,我正在使用基于expressjs和mongoose的NodeWebKit构建一个应用程序。基本上我对这一切都不熟悉 我有一个在线托管的mongoDb,我尝试在我的应用程序中使用它,但我遗漏了一些东西 我在模型文件夹db.js中创建了它,在这里我与数据库连接 var mongoose = require('mongoose'); mongoose.connect('mongodb://user:password@ds012345.mlab.com:port/mydb') //this isn't
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。以下是几点:
什么是
ecc
?您应该连接到如下内容:mongoose.connect('mongodb://localhost:27017/test');代码>
27017
是MongoDB的默认端口,test
是数据库的名称。另外,请确保使用mongod
启动mongo服务器,然后运行mongo控制台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);
});
在您的路由中,您可以执行类似的操作来查询并将数据发送回req:
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;
希望这有帮助 什么是ecc
?您应该连接到如下内容:mongoose.connect('mongodb://localhost:27017/test');
.ecc只是我的服务器地址,带有用户名和密码,很抱歉我把它放在了apex中,所以看起来我真的放了ecc(我使用mlab.com作为主机),模式是正确的,我只是没有放所有的字段。事实上,如果我只是创建一个新模型并将其作为res发送,它就可以工作了,我就是不能保存或查询数据库。您如何保存和查询数据库@Sgarrovar data={nome:'something'}var user=新客户端(数据);user.save(函数(err){if(err)res.send(err)else res.send('saved')});如果只创建数据并放置res.send(user)而不是函数,它会向我显示带有id的模型,如果我在函数save中放置console.log('something'),它不会显示任何内容,事实上页面也不会加载(很抱歉格式化,我无法使其工作)@bun感谢您的回答,但遗憾的是,它不起作用,我尝试了一个简单的test.js,就像这样,它起作用了(保存和查询),但当我尝试在我的应用程序中使用它时,我无法使它起作用。我使用app.js中的路由,所以它看起来像这样,我的index.js看起来像这样。我甚至尝试将数据库连接和模型声明直接放在我的index.js中,但没有成功@小面包