nodejs, express, mysql, 记录一点点学习记录
-
npm install
-
npm start
-
npm -g install supervisor (调试,修改代码自动编译,不需要重新启动)
-
npm run dev
- npm install express-generator -g 安装 express 命令工具
- express --view=pug myapp 创建文件
- cd myapp
- npm install
- package.json scripts 新增命令 --- "start": "node ./bin/www"
- npm start
- localhost:3000 访问
- /db/db.sql 是新建数据库user
- /db/index.js 是数据库连接信息和简单的 query 执行sql的方法封装
var db = mysql.createPool({
host: '127.0.0.1', // 数据库地址
port: '3306', // 端口
user: 'root', // 用户名称
password: 'root', // 用户密码
database: 'test' // 要链接的数据库名称
})
// sql相关
let query = (sql, callback) => {
db.getConnection((err, conn) => {
if (err) {
callback(err, null, null)
} else {
conn.query(sql, (qerr, vals, fields) => {
//释放连接
conn.release()
//事件驱动回调
callback(qerr, vals, fields)
})
}
})
}
-
npm install mysql --save 安装mysql 依赖
-
/router/index mysql -查询和新增
/* GET home page. */
router.get('/getUserAll', function(req, res, next) {
// res.render('index', { title: 'Express', params: req.param });
DB(`select * from user`, (error, results, fields) => {
if (error) {
res
.status(500)
.send({ code: 0, msg: 'database error' })
.end()
}
if (results.length > 0) {
res
.status(200)
.send({
code: 1,
msg: '操作成功!',
total: results.length,
data: results
})
.end()
} else {
res
.status(200)
.send({ code: 1, msg: '无数据 error', total: 0, data: [] })
.end()
}
})
})
//TODO 同时支持get,post
router.post('/addUser', function(req, res, next) {
// 获取前台页面传过来的参数
var param = req.body
// 建立连接,向表中插入值
// 'INSERT INTO user(id, name, age) VALUES(0,?,?)',
DB(
`INSERT INTO user (name, age, status, description) \
VALUES('${param.name}', '${param.age}', ${param.status}, '${param.desc}')`,
(error, results, fields) => {
if (error) {
res
.status(500)
.send({ code: 0, msg: error })
.end()
}
if (results) {
res
.status(200)
.send({ code: 1, msg: '操作成功' })
.end()
} else {
res
.status(200)
.send({ code: 0, msg: '操作失败' })
.end()
}
}
)
})