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