【发布时间】:2020-10-06 12:16:42
【问题描述】:
我想在我的 node.js 项目中添加生产、开发和测试环境我无法理解从下面开始是我的代码我看过很多示例但我无法理解
如何根据环境更新。我已将数据库凭据存储在 .env 文件中
db.config.js
require('dotenv').config()
var config = {
HOST: process.env.DB_HOST || "127.0.0.1",
USER: process.env.DB_USER,
PASSWORD: process.env.DB_PASSWORD,
DB: process.env.DB_NAME,
DIALECT: process.env.DB_DIALECT || "postgres"
};
module.exports = config;
models/index.js
const dbConfig = require("../config/db.config");
const Sequelize = require("sequelize");
const sequelize = new Sequelize(dbConfig.DB, dbConfig.USER, dbConfig.PASSWORD, {
host: dbConfig.HOST,
dialect: dbConfig.DIALECT,
operatorsAliases: false,
});
const db = {};
db.Sequelize = Sequelize;
db.sequelize = sequelize;
db.user = require("./user")(sequelize, Sequelize);
db.role = require("./role")(sequelize, Sequelize);
db.items = require("./items")(sequelize, Sequelize);
db.role.belongsToMany(db.user, {
through: "user_roles",
foreignKey: "roleId",
otherKey: "userId"
});
db.user.belongsToMany(db.role, {
through: "user_roles",
foreignKey: "userId",
otherKey: "roleId"
});
db.ROLES = ["user", "admin"];
module.exports = db;
app.js
var express = require('express');
var bodyParser = require('body-parser');
var db = require('./models');
const logger = require('morgan');
const cors = require("cors");
var app = express();
db.sequelize.sync({ force: false }).then(() => {
console.log("Drop and re-sync db.");
});
app.use(cors());
app.use(logger('dev'))
app.use(bodyParser.json({
type: 'application/vnd.api+json'
})); // parse application/vnd.api+json as json
app.use(bodyParser.json({
limit: '50mb'
}));
app.use(bodyParser.urlencoded({
limit: '50mb',
extended: true,
parameterLimit: 50000
}));
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", '*');
res.header("Access-Control-Allow-Credentials", true);
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
res.header("Access-Control-Allow-Headers", 'Origin,X-Requested-With,Content-Type,Accept,content-type,application/json');
res.header("Cache-Control", "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0");
next();
});
app.get('/', function (req, res) {
res.send('Welcome to Passport with Sequelize');
});
require("./routes/auth.routes.js")(app);
require("./routes/user.routes.js")(app);
require("./routes/items.routes.js")(app);
const PORT = process.env.PORT || 8000;
const server = app.listen(PORT, function(){
console.log("Listening on port: 8080");
});
// app.listen(PORT, () => console.log(`Listening on port: ${PORT}`))
module.exports = server;
【问题讨论】:
标签: javascript node.js postgresql express sequelize.js