在 Node.js 应用程序中,我应该将数据库连接信息放在哪里?

2024-01-04

Node.js 是我的第一个后端语言,我现在问自己“我应该把数据库连接信息放在哪里?”。

关于这个问题有很多很好的信息。对我来说不幸的是所有示例都是 PHP 语言。我明白了这些想法,但我没有足够的信心在 Node.js 中复制它。

在 PHP 中,您可以将信息放在 Web 根目录之外的配置文件中,并在需要数据库数据时包含它。

在 Node.js 中你会如何做到这一点?使用 Express.js 框架。

到目前为止我有这个:

var express = require('express'), app = express();
var mysql = require('mysql');

app.get('/', function(req,res) {

var connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'password',
    database: 'store'
});

var query = connection.query('SELECT * from customers where email = "[email protected] /cdn-cgi/l/email-protection"');

query.on('error', function(err) {

    throw err;

});

query.on('fields', function(fields) {

    console.log('this is fields');

});

query.on('result', function(row) {

    var first = row.first_name;
    var last = row.last_name;

    res.render('index.jade', {
        title: "My first name is " + first,
        category: "My last name is " + last
    });


    });

});

app.listen(80, function() {
    console.log('we are logged in');
});

如您所见,我有一个带有 1 个 GET 路由的基本 Express 应用程序。该路由启动了访问数据库并根据电子邮件地址提取信息的功能。

GET 路由的顶部是数据库连接信息。我把它放在哪里?我怎么称呼它?如何将其保留在 Web 根目录之外,并像 PHP 一样包含它?您能给我展示一个工作示例吗?谢谢!


我使用 Express Middleware 概念来实现同样的目的,这为我管理文件提供了很好的灵活性。

我正在写一个详细的答案,其中包括我如何使用 app.js 中的配置参数连接到数据库。

So my app structure looks something this: enter image description here

我如何连接到数据库? (我使用的是MongoDB,mongoose是ORM,npm install mongoose)

var config = require('./config/config');
var mongoose = require("mongoose");

var connect = function(){
var options = {
  server: {
     socketOptions:{
        keepAlive : 1
     }
  }
};
mongoose.connect(config.db,options);
};
connect();

在 config 文件夹下,我还有“env”文件夹,它将与环境相关的配置存储在单独的文件中,例如development.js、test.js、生产.js

顾名思义,development.js 存储与我的开发环境相关的配置参数,这同样适用于测试和生产的情况。现在,如果您愿意,您可以进行更多配置设置,例如“暂存”等。

项目名称/config/config.js

var path = require("path");
var extend = require("util")._extend;

var development = require("./env/development");
var test = require("./env/test");
var production = require("./env/production");

var defaults = {
   root: path.normalize(__dirname + '/..')
};

module.exports = {
   development: extend(development,defaults),
   test: extend(test,defaults),
   production: extend(production,defaults)
}[process.env.NODE_ENV || "development"]

项目名称/config/env/test.js

module.exports = {
   db: 'mongodb://localhost/mongoExpress_test'
};

现在,您可以通过将 URL 分解为用户名、密码、端口、数据库、主机名来使其更具描述性。

有关更多详细信息,请查看my repo https://github.com/narendrasoni1989/BlogApp,您可以在其中找到此实现,事实上现在在我的所有项目中我都使用相同的配置。

如果您更感兴趣,请看一下Mean.js http://meanjs.org/ and Mean.io http://mean.io,他们有一些更好的方法来管理所有这些事情。如果您是初学者,我建议保持简单并让事情继续下去,一旦您感到舒服,您就可以自己表演魔术。干杯

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Node.js 应用程序中,我应该将数据库连接信息放在哪里? 的相关文章

随机推荐