简体   繁体   English

如何用express设置mongodb?

[英]How to set up mongodb with express?

New to Express App , I am trying to setup mongodb using express and node.js. Express App 新手,我正在尝试使用 express 和 node.js 设置 mongodb。 I have some issues if i can get some help in this area.如果我能在这方面得到一些帮助,我会遇到一些问题。 i tried to add directories refrences so you can have idea.我尝试添加目录引用,以便您有想法。

1- var config is coming undefined not sure path is correct. 1- var config未定义,不确定路径是否正确。

2- getting SyntaxError: Unexpected reserved word for require('./config/express')(app); 2- 得到 SyntaxError: Unexpected reserved word for require('./config/express')(app); . .

Basically trying to have app running with local mongodb.基本上试图让应用程序与本地 mongodb 一起运行。

server > app.js服务器> app.js

var express = require('express');
var mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
var config = require('./config/environment');
var http = require('http');
var https = require('https');
var fs = require('fs');
var bodyParser = require('body-parser');
// Connect to MongoDB
mongoose.connect(config.mongo.uri, config.mongo.options);
mongoose.connection.on('error', function(err) {
    console.error('MongoDB connection error: ' + err);
    process.exit(-1);
});


// Setup server
var app = express();
var server = http.createServer(app);


require('./config/express')(app);
require('./routes')(app);

// Start server
function startServer() {
    server.listen(config.port, config.ip, function() {
        console.log('Express server listening on %d, in %s mode', config.port, app.get('env'));
    });
}

setImmediate(startServer);

// Expose app
exports = module.exports = app;

server > config > express.js服务器> 配置> express.js

var express = require('express');
var morgan = require('morgan');
var bodyParser = require('body-parser');
var path = require('path');
var config = require('./config/environment');
var session = require('express-session');
var connectMongo = require('connect-mongo');
var mongoose = require('mongoose');
var mongoStore = connectMongo(session);

export default function(app) {
    var env = app.get('env');

    app.set('views', config.root + '/server/views');
    app.engine('html', require('ejs').renderFile);
    app.set('view engine', 'html');
    /*app.use(compression());*/
    app.use(bodyParser.urlencoded({
        extended: false
    }));

    app.set('appPath', path.join(config.root, 'client'));

    if ('development' === env || 'test' === env) {
        app.use(express.static(path.join(config.root, '.tmp')));
        app.use(express.static(app.get('appPath')));
        app.use(morgan('dev'));

server > config > environment > development.js服务器> 配置> 环境> development.js

module.exports = {

  // MongoDB connection options
  mongo: {
    uri: 'mongodb://localhost/test-modeler-dev'
  },

  // Seed database on startup
  seedDB: false

};

As it was pointed out in the comments of the question, your problem is that you are using newer JavaScript features with an older version of Node.正如问题的评论中指出的那样,您的问题是您在旧版本的 Node.js 中使用了较新的 JavaScript 功能。 To get around the current error, you should change this line in server > config > express.js :要解决当前错误,您应该在server > config > express.js 中更改这一行:

// ...
export default function(app) {
// ...

To

// ...
module.exports = function(app) {
// ...

This should solve this particular problem.这应该可以解决这个特殊问题。 But if the code you are using is using other features of ECMAScript 2015 that aren't supported by your version of Node, then you have two options:但是,如果您使用的代码正在使用您的 Node 版本不支持的 ECMAScript 2015 的其他功能,那么您有两个选择:

  • Update to the latest version of Node.js here.在此处更新到最新版本的 Node.js。
  • Refactor all of your code remove all ECMAScript 2015 features to ensure that it works with your version of Node.js.重构您的所有代码,删除所有 ECMAScript 2015 功能,以确保它适用于您的 Node.js 版本。

Hope this helps.希望这可以帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM