1. 初始化配置基本信息:
npm init (自定义配置)
npm init -y (一切配置采用默认值)
在当前目录产生package.json文件,有一个dependencies用来记录该项目所有依赖包
2.搭建服务器(在入口文件中app.js)
使用express框架(npm i express 下载该模块)
//加载express const express = require('express') //创建express服务器 const app = express() //开启服务器(端口号随意此处为3000) const.listen(3000, () => { //搭建成功后的提示信息 console.log('server is running...) }
//托管静态资源
app.use('/assets',express.static('./view/assets'))
app.use('/node_modules', express.static('./node_modules'));
//注册body-parser中间件(body-parse用来专门处理post请求的数据)
const bp = require('body-parser');
app.use(bp.urlencoded({extended: false}));
//注册中间件
//配置模板引擎
app.engine('html', require('express-art-template'));
//4. 加载路由模块
const router = require('./router.js');
app.use(router);
使用系统模块提供的http模块
const http = require('http')
//创建服务器实例
const server = http.createServer()
//开启服务
server.listen(3000, ()=>{
console.log('server is reunning...')
}
//客户端请求事件,监听客户端请求
//当用户请求require页时,在页面上返回'hellow'
server.on('request', (req, res) => {
res.end('hellow')
}
3. 使用mysql模块,封装数据库文件(db.js)
mysql是一个第三方模块,提供对数据库增删改
const mysql = require('mysql')
//创建连接对象
const conn = mysql.createConnection({
host: '127.0.0.1',
user: 'root',
password: 'root',
port: 3333, // 端口号
database: 'aaa' //要操作的数据库
})
//连接mysql服务器
conn.connect();
//执行sql语句
const sql = 'select * from hero'
//添加insert into hero value(null, '武则天','朕很中意你','2018-2-2')
//删除insert into hero value(null, '武则天','朕很中意你','2018-2-2')
//修改update hero set name='张三', content='大傻子' where id = 1
conn.query(sql,(err,result,field)=>{
if(err){
return console.log(err)
}
console.log(result)
})
//导出
module.exports = conn
通配符模式
const sql = "update hero set ? where hero_id=?" const obj = { hero_name: '圣诞快乐', hero_age: 22 } conn.query(sql,[obj,2],(err,result)=>{ //。。。。 }
4. 路由模块
const express = require('express')
const path = require('path')
const db = require('./db.js')
const router = express.Router()
//加载控制器
// const jq_c = require('./jq_controller.js')
//监听浏览器请求
//美食
router.get('/meishi',(req, res) => {
const sql = 'select * from MS'
db.query(sql, (err, result) => {
if(err){
console.log(err)
}
console.log(result)
res.render(path.join(__dirname, 'view/jqhtml','meishi.html'),{list: result})
})
// res.end('sadasdasd')
})
module.exports = router;
5.运行
命令窗口node app.js