zoukankan      html  css  js  c++  java
  • node的开发者环境设置丢失

    1.我看到的最简单的一种:evn 默认的值是  development

    var app = express();
    if (app.get('env') === 'development') {
        require('./conf');
        global.Mailer = {
            error: function (msg) {
                console.log(msg);
            }
        };
        console.log('load dev config');
    } else {
        require('./conf-online');
        console.log('load online config');
        var mailer = require('./utils/Mailer');
        mailer.error('服务已经启动	host:' + require('os').hostname() + '	' + 'pid:' + process.pid + '	' + new Date());
    }

    2.我们问这个env怎么设置啊?

    app.set('env', 'production');

    3.这个博客看一眼然后我们分析:https://segmentfault.com/q/1010000002940044

    4.问为什么一个地方设置了poduction然后在另一个地方这个值又恢复默认的development

    两个解决办法:

    //app.js
    var express = require('express');
    var app = express();
    app.set('env', 'production');
    console.log('app.js', app.get('env'));//production
    
    var routes = require('./routes/index');
    app.use('/', routes);
    
    app.listen(8080, function(){
        console.log('start ..');
    })
    //./routes/index.js
    var express = require('express');
    var router = express.Router();
    
    router.get('/', function(req, res) {
        console.log(req.app.get('env'));//development
    
        res.send(req.app.get('env'));
    });
    
    module.exports = router;

    第二种方法:

    ****app.js
    var express = require('express');
    var app = express();
    app.set('env', 'production');
    console.log('app.js', app.get('env'));//production
    
    var routes = require('./routes/index')(app);//传递 app 过去
    app.use('/', routes);
    
    app.listen(8080, function(){
        console.log('start ..');
    })
    
    
    ************./routes/index.js
    module.exports = function(app){
        var env = app.get('env');//从参数中获取到app,然后使用get方法
        console.log('route', env);
    
        return function(req, res, next){//返回一个function,以便满足 `app.js` 中 `app.use('/', routes);` 这个的用法.
            res.send(env);
            next();
        }
    }
  • 相关阅读:
    cocoaPods 最新系统上的安装和基本使用图文笔记
    iOS cell左滑出现多个功能按钮(IOS8以后支持)
    JPA error org.hibernate.AnnotationException: No identifier specified for entity
    spring-boot Jpa配置
    Java中各种集合(字符串类)的线程安全性!!!
    kafka浅谈
    Redis 指令
    JVM监控及堆栈内存
    redis与mysql性能对比、redis缓存穿透、缓存雪崩
    分布式锁机制
  • 原文地址:https://www.cnblogs.com/coding4/p/5579711.html
Copyright © 2011-2022 走看看