将我的应用程序(node,express,mongo)与我的本地数据库连接并查询

时间:2017-06-08 16:35:43

标签: node.js mongodb express passport.js

我使用node.js,express.js,passport.js和mongodb构建了一个小应用程序。我是这项技术的新手,所以我尝试在服务器上传代码并将其与mongolab连接之前在本地进行测试。现在我的问题是我无法使用我的mongo shell在本地查看或查询我的所有用户,因此,每次添加用户时,我都无法看到我是否真的添加它。到目前为止,我的代码如下:

app.js

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var port = process.env.PORT || 3000;

var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;

var mongoose = require('mongoose');
var flash = require('connect-flash');
var session = require('express-session');

var routes = require('./routes/index');
var users = require('./routes/users');

var configDB = require('./config/database.js');
mongoose.connect(configDB.url);

database.js(config / database.js)

module.exports = {
  url: 'mongodb://localhost/expressauth',
};

user.js(models / user.js)

var mongoose = require('mongoose');
var bcrypt   = require('bcrypt-nodejs');

var userSchema = mongoose.Schema({
  local: {
    name: String,
    email: String,
    password: String,
  },
});

userSchema.methods.generateHash = function(password) {
  return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null);
};

userSchema.methods.validPassword = function(password) {
  return bcrypt.compareSync(password, this.local.password);
};

module.exports = mongoose.model('User', userSchema);

到目前为止,代码工作正常,每次添加新用户时,我都可以获得用户ID(类似于59397add4905d20f0329125c)和密码。

现在我试图通过mongo shell看到我的所有用户,所以我在终端输入MONGO,然后输入SHOW DBS,这样我就可以看到我的所有数据库了。

我可以通过我的database.js(url:'mongodb:// localhost / expressauth')找到我创建的数据库,名为expressauth,所以我切换到它(USE expressauth),最后我尝试制作我在文档中找到的一个查询(类似于mysql中的SELECT *)=> db.expressauth.find()。

但我没有收到任何数据。所以我无法测试我的应用程序(这实际上是我在github上找到的一个Web应用程序:https://github.com/danielgynn/express-authentication/

有什么建议为什么我的mongoshell不起作用?

1 个答案:

答案 0 :(得分:1)

如果您已经在mongoshell中并且已经调用use expressauth,那么您应该能够show collections查看该数据库中的集合。 userusers集合应该在那里,具体取决于您的配置。然后,您可以调用db.users.find()来获取集合中的所有用户。