先上目录结构
路由层代码 router/
index.js
"use strict";
module.exports = function (app) {
app.get('/', function (req, res, next) {
res.send('Hello node-express World!');
next();
});
// 具体的业务请求路由配置
app.use('/user', require('./user'));
// 404 page ejs渲染报错,暂时不管
app.use(function (req, res) {
if (!res.headersSent) {
res.status(404);
// res.status(404).render('../view/404');
}
});
};
user.js
"use strict";
var express = require('express');
var router = express.Router();
//mysql
var user_pool = require("../mysql/user");
// 该路由使用的中间件 timeLog
router.use(function timeLog(req, res, next) {
console.log('Time: ', Date.now());
next();
});
// 定义网站主页的路由
router.get('/', function (req, res) {
// console.log(req);
res.send(req.query || {});
});
// 查询用户信息
router.post('/infos', function (req, res) {
console.log(req.body);
user_pool.query("select * from user where name=1104", function (data) {
console.log("===============user query callback==========");
console.log(data);
res.send(data);
});
});
//more
module.exports = router;
数据层代码 mysql/
mysql_pool.js
/**
* Created by xiaogang on 2017/4/5.
*/
"use strict";
var config = require('config-lite');
var mysql = require('mysql');
var pool = mysql.createPool(config.mysql_pool);
module.exports = pool;
user.js
/**
* Created by xiaogang on 2017/4/5.
*/
"use strict";
var pool = require("./mysql_pool");
exports.query = function (sql, callback) {
pool.query(sql, function (error, results, fields) {
if (error) throw error;
callback(JSON.parse(JSON.stringify(results)));
});
}
exports.update = function (sql, callback) {
pool.query(sql, function (error, results, fields) {
if (error) throw error;
callback(JSON.parse(JSON.stringify(results)));
});
}
前端调用:zepto(jquery) 的ajax
问题:
不知道各位经常写后台的认为这样封装可行不?希望多多吐槽。
前端开发转node,目前只能封装到这一步,后面要上项目的,还望多多指教。
Baidu 検索の続編として、この ORM を使用してデータベースを操作できます。パフォーマンスに多少の影響はありますが、使いやすいです。