Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

后端: node express winston winston-daily-rotate-file sequlize mysql 前端: rect redux react-router webpack 4.0

Notifications You must be signed in to change notification settings

antbrothers/node-react

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

69 Commits

Repository files navigation

react-cli

后端: node express winston winston-daily-rotate-file sequlize mysql
前端: rect redux react-router webpack 4.0
喜欢的请给个star吧
项目结构
 #server
 |--- bin
 | |--- www // 项目启动文件
 |--- config
 | |--- config.js // 数据库链接配置
 | |--- error.message.js // 处理公共错误提示
 | |--- proxy.js // 配置api反向代理
 |--- controllers // 控制器编写api
 | |--- api.js 
 | |--- login.js
 | |--- red.js
 |--- logs // 日志文件
 | |--- accesss.log.txt.2018-04-12 // 记入每一个接口请求
 | |--- error.log.txt.2018-04-12 // 严重错误日志
 | |--- normal.log.txt.2018-04-12 // 普通日志
 | |--- warn.log.txt.2018-04-12 // 普通错误日志
 |--- middleware // 中间件
 | |--- rest.js // 统一处理结果
 |--- models // 模型文件
 | |--- index.js
 | |--- red.js
 | |--- user.js
 |--- public // 公共资源文件
 | |--- images
 | |--- javascript
 | |--- stylesheets 
 |--- services // 业务逻辑处理
 | |--- loginService.js
 | |--- redService.js
 | |--- userService.js
 |--- test // 单元测试
 | |--- test.js
 |--- util // 工具
 | |--- cookies.js
 | |--- crypto.js
 | |--- logger.js
 | |--- rohr.js 
 |--- views // 视图
 | |--- index.html
 |--- app.js // 入口文件
 |--- controller.js // 自动导入控制器文件
 |--- package.json
自动扫描controller文件,并且导出router, 在app.js 一次使用
#controller.js
...function addController(router, dir) {
 fs.readdirSync(__dirname + '/' + dir).filter((file) => {
 return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
 }).forEach((file) => {
 addMapping(router, require(path.join(__dirname,dir, file)));
 })
 }...
 
 #app.js
 app.use(controller())
使用sequlize 实现关系对象映射
# models/index.js
try {
 sequelize = new Sequelize(dbConfig.database, dbConfig.user, dbConfig.password, dbConfig);
 console.log("connection to the db....")
} catch (e) {
 console.log(e);
 throw e;
}
fs.readdirSync(__dirname).filter((file) => {
 return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
}).forEach((file) => {
 const model = sequelize['import'](path.join(__dirname, file));
 db[model.name] = model;
})
Object.keys(db).forEach(function (modelName) {
 if (db[modelName].associate) {
 db[modelName].associate(db);
 }
})
db.sequelize = sequelize;
db.Sequelize = Sequelize;
使用http-proxy-middleware,处理第三api方向代理
# config/proxy.js
 module.exports = {
 proxyTable: {
 '/external': {
 target: 'https://activity.waimai.meituan.com/coupon/grabShareCoupon',
 changeOrigin: true,
 pathRewrite: {
 '^/external': '/'
 }
 },
 '/extget': {
 target: 'http://www.123369.com.cn/api/Jkb/GetHomeJKBList',
 changeOrigin: true,
 pathRewrite: {
 '^/extget': '/'
 }
 }
 }
 }
# app.js
var proxyTable = config.proxyTable;
Object.keys(proxyTable).forEach(function(context) { 
 var options = proxyTable[context];
 var Proxy = proxy(options);
 app.use(context, Proxy)
})
项目

About

后端: node express winston winston-daily-rotate-file sequlize mysql 前端: rect redux react-router webpack 4.0

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /