簡體   English   中英

如何用express設置mongodb?

[英]How to set up mongodb with express?

Express App 新手,我正在嘗試使用 express 和 node.js 設置 mongodb。 如果我能在這方面得到一些幫助,我會遇到一些問題。 我嘗試添加目錄引用,以便您有想法。

1- var config未定義,不確定路徑是否正確。

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

基本上試圖讓應用程序與本地 mongodb 一起運行。

服務器> 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;

服務器> 配置> 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'));

服務器> 配置> 環境> development.js

module.exports = {

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

  // Seed database on startup
  seedDB: false

};

正如問題的評論中指出的那樣,您的問題是您在舊版本的 Node.js 中使用了較新的 JavaScript 功能。 要解決當前錯誤,您應該在server > config > express.js 中更改這一行:

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

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

這應該可以解決這個特殊問題。 但是,如果您使用的代碼正在使用您的 Node 版本不支持的 ECMAScript 2015 的其他功能,那么您有兩個選擇:

  • 在此處更新到最新版本的 Node.js。
  • 重構您的所有代碼,刪除所有 ECMAScript 2015 功能,以確保它適用於您的 Node.js 版本。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM