nodejs中怎么构建一个http服务
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,nodejs中怎么构建一个http服务,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。内容索引:Node中的http模块使
千家信息网最后更新 2026年11月02日nodejs中怎么构建一个http服务
nodejs中怎么构建一个http服务,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
内容索引:
Node中的http模块
使用node构建http服务
实现一个静态资源服务器
使用模板引擎处理动态网页
结合数据库渲染动态页面
实现一个留言本案例
第三方HTTP服务框架
Node中的http模块
TCP和UDP 都属于传输层协议
HTTP,用于浏览器和服务器端进行通信,由于HTTP协议本身并不考虑数据如何传输等其他问题,所以属于应用层协议。
Node提供了基本的http和https模块用于HTTP 和 HTTPS的封装
const http = require('http')const server = http.createServer()1.1Server实例
| API | 说明 |
|---|---|
| Event: 'close' | 服务器关闭时触发 |
| Event: 'request' | 服务器收到请求消息时触发 |
| server.close() | 关闭服务 |
| server.listening | 获取服务状态 |
1.2 请求对象
| API | 说明 |
|---|---|
| request.method | 请求方法 |
| request.url | 请求路径 |
| request.header | 请求头 |
| request.httpVersioni | 请求http协议版本 |
1.3 响应对象
| API | 说明 |
|---|---|
| response.end() | 结束响应 |
| response.setHeader(name, value) | 设置响应头 |
| response.removeHeader(name, value) | 删除响应头 |
| response.statusCode | 设置响应状态码 |
| response.statusMessage | 设置响应状态短语 |
| response.write() | 写入响应数据 |
| response.writeHead() | 写入响应头 |
2.1 hello world
const http = require('http');const path = require('path');const mimie = require('mime'); // 返回扩展名对应的content-typeconst fs = require('fs');const hostname = '127.0.0.1';const port = 3000;const server = http.createServer((req, res) => { // res.setHeader('Content-type', 'text/plain charset=utf-8'); // 响应字符串 const url = req.url; if (url === '/') { fs.readFile(`./index.html`, (err, data) => { if (err) { throw err; } res.statusCode = 200; res.setHeader('Content-type', 'text/html; charset=utf-8'); // 响应html res.end(data); }); } else if (url.startsWith('/assets/')) { fs.readFile(`.${url}`, (err, data) => { if (err) { res.setHeader('Content-type', 'text/plain; charset=utf-8'); res.statusCode = 404; res.end('404 Not Fund.'); } // path.extname(url) 获取文件对应的扩展名 const contentType = mimie.getType(path.extname(url)); res.statusCode = 200; res.setHeader('Content-type', `${contentType}; charset=utf-8`); // 设置响应头 res.end(data); }); } else { res.statusCode = 404; res.setHeader('Content-type', 'text/plain; charset=utf-8'); res.end('404 Not Fund.'); } // console.log('req', Object.keys(req));});server.listen(port, hostname, () => { console.log(`server running at http://${hostname}:${port}`);});contentType对照表:http://tool.oschina.net/commons
常用模板引擎:
marko
nunjucks
handlebars.js
ejs
Pug
art-template
template-engine.js
const http = require('http');const path = require('path');const fs = require('fs');const template = require('art-template');const hostname = '127.0.0.1';const port = 3000;const server = http.createServer((req, res) => { const url = req.url; const fileBaseUrl = path.join(__dirname); if (url === '/') { fs.readFile('./template-engine.html', (err, data) => { data = data.toString(); const ret = template.render(data, { msg: 'world', todos: [ { title: '吃饭', completed: false }, { title: '睡觉', completed: true }, { title: '打豆豆', completed: false } ] }); res.setHeader('Content-type', 'text/html charset=utf-8'); // 响应字符串z res.end(ret); res.statusCode = 200; }); }});server.listen(port, hostname, () => { console.log(`server running at http://${hostname}:${port}`);});template-engine.html
Document 我是我{{ msg }}
- {{ each todos }}
- {{ $value.title }} {{ /each }}
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
服务
服务器
数据
模块
状态
内容
动态
字符
字符串
对象
引擎
扩展名
模板
传输
帮助
清楚
实例
对此
对照表
常用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
什么是科技互联网
深圳市人人互联网科技有限公司
广东猪兼强互联网科技有限公司
苏州找大状互联网科技有限公司
金诺互联网科技
科技类互联网
万易互联网科技
以房互联网科技
互联网科技媒体
唐信互联网科技
互联网科技网站
重庆科技学院互联网
宝灵互联网科技有限公司
互联网科技商业
广东工业互联网大赛深圳学泰科技
互联网营销推广黑科技
互联网科技资金流入
上海同邻互联网科技有限公司规模
西安有哪些互联网高科技企业
科技和互联网行业的特点
互联网络科技
麻工互联网科技
迪茉互联网科技
天速互联网络科技有限公司
北京华百购互联网科技有限公司
彤创互联网科技有限公司
湖南一路畅行互联网科技
天津腾达互联网科技有限公司
深圳互联网科技园地址
杭州融税互联网科技有限公司