过程
const http=require('http') 导入http模块
const server= http.createServer() 调用http.createServer
server.on('request', (req,res) => { 给server绑定一个requset事件
const url=req.url
const method=req.method post/get
const str=`method is ${url},method is ${method}`
res.setHeader('Content-Type','text/html;charset=utf-8') 解决中文乱码问题
console.log(str);
res.end('请求消息='+str) 象客户端返回数据
})
server.listen(80, ()=>{
console.log('http://127.0.0.1');
})
解决中文乱码
自定义模块 .js可省略
module.exports
// 在一个自定义模块中,默认情况下, module.exports = {}
const age = 20
// 向 module.exports 对象上挂载 username 属性
module.exports.username = 'zs'
// 向 module.exports 对象上挂载 sayHello 方法
module.exports.sayHello = function() {
console.log('Hello!')
}
module.exports.age = age
// 让 module.exports 指向一个全新的对象 age username 将被覆盖
module.exports = {
nickname: '小黑',
sayHi() {
console.log('Hi!')
}
}
不要再同一个模块中同时使用exports和module.exports
express
// 1. 导入 express
const express = require('express')
// 2. 创建 web 服务器
const app = express()
// 4. 监听客户端的 GET 和 POST 请求,并向客户端响应具体的内容
app.get('/user', (req, res) => {
// 调用 express 提供的 res.send() 方法,向客户端响应一个 JSON 对象
res.send({ name: 'zs', age: 20, gender: '男' })
})
app.post('/user', (req, res) => {
// 调用 express 提供的 res.send() 方法,向客户端响应一个 文本字符串
res.send('请求成功')
})
app.get('/', (req, res) => {
// 通过 req.query 可以获取到客户端发送过来的 查询参数
// 注意:默认情况下,req.query 是一个空对象
console.log(req.query)
res.send(req.query)
})
// 注意:这里的 :id 是一个动态的参数
app.get('/user/:ids/:username', (req, res) => {
// req.params 是动态匹配到的 URL 参数,默认也是一个空对象
console.log(req.params)
res.send(req.params)
})
// 3. 启动 web 服务器
app.listen(80, () => {
console.log('express server running at http://127.0.0.1')
})
express 对外提供静态资源
const express = require('express')
const app = express()
// 在这里,调用 express.static() 方法,快速的对外提供静态资源
app.use('/files', express.static('./files'))
app.use(express.static('./clock')) clock文件夹中的文件不包括clock文件夹
app.listen(80, () => {
console.log('express server running at http://127.0.0.1')
})
要调用多个文件夹 则多调用几个 app.use(express.static(' 调用的文件夹'))函数即可
nodemone 文件名 自动重启 不需要ctrl+c重新运行