Authored by xuqi
# JS语法检查
JS语法检查使用Eslint,首先,请全局安装**eslint**和配置文件:`npm i eslint eslint-config-yoho -g`
## 对应问题描述查阅
[rules](http://smocean.github.io/docs/rules/)
## 语法规则配置
From: [eslint-config-yoho](https://www.npmjs.com/package/eslint-config-yoho)
## 禁用检查
/* eslint-disable */
/* eslint-enable */
```
/* eslint-disable */
/* eslint-enable */
```
**原则上只有无法使用 npm 安装的包,复制代码过来的时候可以忽略,自己写的代码必须过检查**
# 项目启动方法
* 拉取代码
* 安装全局包:`eslint`,`eslint-config-yoho`,`yo`,`generators-yohos`
* 安装本地依赖
* 启动服务进程:当前目录下运行`npm run start`
* 进入模块的静态资源目录,运行`gulp`
\ No newline at end of file
- 拉取代码
- 安装全局包:`eslint`,`eslint-config-yoho`,`yo`,`generators-yohos`
- 安装本地依赖
- 启动服务进程:当前目录下运行`npm start`
- 进入模块的静态资源目录,运行`gulp`
... ...
... ... @@ -11,13 +11,22 @@ var express = require('express'),
var logger = require('morgan'),
favicon = require('serve-favicon'),
cookieParser = require('cookie-parser');
cookieParser = require('cookie-parser'),
session = require('express-session'),
connectRedis = require('connect-redis');
var app = express();
var config = require('./config');
var app = express(),
RedisStore = connectRedis(session);
if (app.get('env') === 'development') {
config = Object.assign(config, require('./config.dev'));
}
app.set('views', path.join(__dirname, 'views/action'));
app.set('view engine', 'hbs');
hbs.registerPartials(__dirname + '/views/partials');
hbs.registerPartials(path.join(__dirname + '/views/partials'));
app.use(favicon(path.join(__dirname, '/public/favicon.ico')));
app.use(logger('dev'));
... ... @@ -26,6 +35,15 @@ app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
// session 配置
app.use(session({
name: 'yoho-activity',
resave: true,
saveUninitialized: true,
store: new RedisStore(config.sessionRedis),
secret: config.sessionSecret
}));
app.use(function(req, res, next) {
res.locals.devEnv = app.get('env') === 'development';
next();
... ... @@ -35,12 +53,12 @@ app.use(function(req, res, next) {
app.use('/', require('./router'));
// 未知路由转入 404
// app.use(function(req, res) {
// var err = new Error('Not Found');
//
// err.status = 404;
// res.send(404, err);
// });
app.use(function(req, res) {
var err = new Error('Not Found');
err.status = 404;
res.status(404).send(err);
});
// 捕获全局错误, 开发环境返回错误详情
app.use(function(err, req, res) {
... ... @@ -49,6 +67,7 @@ app.use(function(err, req, res) {
} else {
err = {};
}
res.status(err.status || 500);
res.render('error', {
message: err.message,
... ... @@ -56,5 +75,4 @@ app.use(function(err, req, res) {
});
});
module.exports = app;
... ...
module.exports = {
sessionRedis: {
host: '127.0.0.1',
port: 6379,
prefix: 'activity-node-session:',
ttl: 3600 // session 默认有效期
},
sessionSecret: '111'
};
... ...
module.exports = {
sessionRedis: {
host: '127.0.0.1',
port: 6379,
prefix: 'activity-node-session:',
ttl: 3600 // session 默认有效期
},
sessionSecret: '111'
};
... ...
... ... @@ -43,12 +43,12 @@ class API {
var rps = [];
for (let el of urls.values()) {
rps[i] = rp({
rps.push(rp({
url: `${API_URL}${el.url}`,
headers: this.headers,
timeout: this.timeout,
qs: el.data
});
}));
}
return Promise.all(rps).then((d) => {
... ...
... ... @@ -4,16 +4,18 @@
"private": true,
"scripts": {
"start": "node ./bin/www",
"lint": "eslint -c .eslintrc --fix --cache public/**/*.js",
"lint": "eslint -c .eslintrc --fix --cache .",
"validate": "npm ls"
},
"dependencies": {
"body-parser": "~1.13.2",
"connect-redis": "^3.0.2",
"cookie-parser": "~1.3.5",
"debug": "~2.2.0",
"express": "~4.13.1",
"gulp-util": "^3.0.7",
"hbs": "^3.1.1",
"express-session": "^1.13.0",
"lodash": "^4.6.1",
"morgan": "~1.6.1",
"request-promise": "^2.0.1",
... ...
... ... @@ -3,14 +3,15 @@
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2016/3/28
*/
'use stricts';
const express = require('express');
const app = new express.Router();
const routes = './routes';
var index = require(`${routes}/index`);
var wxLottery = require(`${routes}/wxLottery/index`);
app.get('/wxLottery', wxLottery.index);
app.get('/', index.index); // 主页
app.get('/wxLottery', wxLottery.index); // 微信抽奖活动
module.exports = app;
... ...
/**
* 默认主页
*/
exports.index = (req, res) => {
res.send('Hello YOHO!');
};
... ...