Javascript Moongose、expressjs和节点webkit

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

我正在使用基于expressjs和mongoose的NodeWebKit构建一个应用程序。基本上我对这一切都不熟悉

我有一个在线托管的mongoDb,我尝试在我的应用程序中使用它,但我遗漏了一些东西

我在模型文件夹db.js中创建了它,在这里我与数据库连接

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中,但没有成功@小面包