node开发 npm install -g express-generator@4
Node forever :
1,forever start --uid test start app.js
2,forever start --uid test start -a app.js
3,forever list
4,forever stop test
node 开发流程
1,express nodeName ; npm install;
2,加入Database;var mongoose = require('mongoose'); npm install mongoose --save
var dbIpAddress = process.env.MONGO_PORT_27017_TCP_ADDR || 'localhost';
var dbPort = process.env.MONGO_PORT_27017_TCP_PORT || '27017';
mongoose.connect('mongodb://' + dbIpAddress + ':' + dbPort + '/menusifu', function(err) {
if(err) {
console.log('connection error', err);
} else {
console.log('DB connection successful');
}
});
3,加入Log
var logDirectory = __dirname + '/log';
var phonePath=path.join(__dirname, '../public/'+d.merchantId+"/txt");
mkdirp(phonePath, function (err) {
if (err) console.log(err)
else console.log('success');
});
4,app.use前加入过滤
app.use(function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
next();
});
app.use('/', routes);
5,把ERROR改成
var errorJson={
"11000":"duplicate key error"
}
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
if(!!err.code){err.message=!!errorJson[err.code]?errorJson[err.code];}
res.json({"ok":0,"message":err.message});
});
}
// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
if(!!err.code){err.message=!!errorJson[err.code]?errorJson[err.code];}
res.json({"ok":0,"message":err.message});
});
=======================================
if (!!err) return next(err);
node开发 npm install -g express-generator@4的更多相关文章
- nodejs npm install -g 全局安装
1. npm install xxx -g 时, 模块将被下载安装到[全局目录]中. [全局目录]通过 npm config set prefix "目录路径" 来设置. 比如说, ...
- nodejs npm install -g 全局安装和非全局安装的区别
1. npm install xxx -g 时, 模块将被下载安装到[全局目录]中. [全局目录]通过 npm config set prefix "目录路径" 来设置. 比如说, ...
- npm全局安装和本地安装和本地开发安装(npm install --g/--save/--save-dev)
详细说明参考:http://www.cnblogs.com/PeunZhang/p/5629329.html 我个人理解: 1.全局安装(npm install -g)是为了用命令行,比如在windo ...
- [坑况]——windows升级node最新版本报错【npm install -g n】
我本来是下载一个vue-cli的,然后技术日新月异,告知我要先把我的node升级到8以上(目前是v6.1.13) 升级就升级,升级就报错 尝试第一种方法,网上最多的一种方法,估计也是成功最多的一种吧( ...
- npm install, npm install -g, npm install --save, npm install --save-dev之间的区别
1.npm install X 安装X到项目的node_modules文件夹 会修改package.json,在dependencies中写入依赖.(关于这一点,网上的大部分文章都是说,不会修改pac ...
- npm install、npm install --save与npm install --save-dev、npm install -g区别
npm install X: 会把X包安装到node_modules目录中 不会修改package.json 之后运行npm install命令时,不会自动安装X npm install X –sav ...
- npm install -g 全局安装总是出现permission权限问题的解决方案
npm install -g 全局安装总是出现permission权限问题的解决方案 开始使用node的时候,在使用npm安装global packages时,习惯性地使用npm install -g ...
- appium----【已解决】【Mac】安装sudo npm install -g appium-doctor总是提示“Error: EACCES: permission denied........”
[mac电脑] 问题: (1)npm install -g appium-doctor (2)sudo npm install -g appium-doctor (3)cnpm install ...
- npm install -g @angular/cli@latest 失败
一开始的ERROR信息是 error "@angular/compiler-cli" package was not properly installed 尝试方案二时又出现了以下 ...
随机推荐
- jQuery学习笔记:attr()与prop()的区别
先看看官方文档是如何解释两者之间功能差异的: attr() Get the value of an attribute for the first element in the set of matc ...
- C++ 多线程中的一个抛出异常
试了一下,和Java完全不同. 注意Java和C++对于多线程里面的一个线程抛出异常的影响,完全不同. Java里面,对于主线程和其他线程完全不受影响: C++里面,整个程序会退出,所有线程都会受影响 ...
- C# winform解决解决窗体第一次设置为最大化后,点击最大化按钮窗体无法居中问题
public frmMain() { InitializeComponent(); //解决窗体第一次设置为最大化后,点击最大化按钮窗体无法居中问题 int x = Convert.ToInt32(( ...
- Hadoop 基本操作
1.关闭安全模式 hadoop dfsadmin -safemode leave
- Jq_选择器、效果函数
JQuery 选择器 选择器 实例 选取 * ...
- Hbase之校验指定数据是否存在
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; impo ...
- Matlab求齐次方程的解
% 求Ax=0的解: r=rank(A): x=null(A,r) 求出来x的是归一化后的解.
- css编码规范
css编码规范 https://segmentfault.com/a/1190000002460968 常用样式测试工具 W3C CSS validator:http://jigsaw.w3.org/ ...
- git tag推送小分析
一个推送可以用三条命令 -[deleted]-git push origin --tags git push origin master --follow-tags git push --follow ...
- OpenCV3编程入门笔记(4)腐蚀、膨胀、开闭运算、漫水填充、金字塔、阈值化、霍夫变换
腐蚀erode.膨胀dilate 腐蚀和膨胀是针对图像中的白色部分(高亮部分)而言的,不是黑色的.除了输入输出图像外,还需传入模板算子element,opencv中有三种可以选择:矩形MORPH_RE ...