nodejs编写后台
1.引入核心模块
2.服务器监听窗口
3.创建服务器对象
4.设置服务器监听窗口
寻找路径
1 // 引入核心模块 2 const http = require('http') 3 4 // 服务器监听窗口 5 const port =3000; 6 // const port =process.argv[2]; 7 // console.log(process.argv) 8 // 创建服务器对象 9 const serve = http.createServer((req,res)=>{ 10 let fileName=''; 11 12 if(req.url==='/'){ 13 fileName='/public/index.html' 14 }else{ 15 fileName='/public'+req.url; 16 } 17 console.log(fileName); 18 res.end(fileName) 19 }) 20 // 设置服务器监听窗口 21 serve.listen(port,()=>{ 22 console.log(`serve runnint at http://localhost${port}`) 23 })
全局变量
以下几个变量虽然看起来是全局的,但其实并不是,它们仅存在于模块范围内。
- require(),模块作用域中的全局方法,用于导入其他模块
- module,表示当前模块
- exports,module.exports属性的别名,用于导出模块成员
- __dirname,表示当前文件所在的目录
- __filename,表示当前文件的名称(名称前面具有完整的路径)
1 // 引入核心模块 2 const http = require('http') 3 const path = require('path') 4 // 服务器监听窗口 5 const port =3000; 6 7 // 创建服务器对象 8 const serve = http.createServer((req,res)=>{ 9 let fileName=''; 10 11 if(req.url==='/'){ 12 fileName='/public/index.html' 13 }else{ 14 fileName='/public'+req.url; 15 } 16 // console.log(fileName); 17 // 根目录 18 19 res.end(path.join(__dirname,fileName)) 20 // res.end(__dirname+fileName) 21 }) 22 // 设置服务器监听窗口 23 serve.listen(port,()=>{ 24 console.log(`serve runnint at http://localhost${port}`) 25 })
读取文件
1 // 引入核心模块 2 const http = require('http') 3 const path = require('path') 4 const fs = require('fs') 5 // 服务器监听窗口 6 const port =3000; 7 8 // 创建服务器对象 9 const serve = http.createServer((req,res)=>{ 10 let fileName=''; 11 12 if(req.url==='/'){ 13 fileName='/public/index.html' 14 }else{ 15 fileName='/public'+req.url; 16 } 17 // console.log(fileName); 18 // 根目录 19 20 // res.end(path.join(__dirname,fileName)) 21 // res.end(__dirname+fileName) 22 23 24 // 读取文件 25 fs.readFile((__dirname+fileName), 'utf8',(err,data)=>{ 26 // fs.readFile((__dirname+fileName),{encoding: 'utf8', flag: 'r'},(err,data)=>{ 27 if(err){ 28 res.statusCode=404; 29 res.statusMessage='not Found'; 30 res.setHeader('content-Type','text/html;charset=utf-8') 31 res.end('这里什么都没有') 32 }else{ 33 res.statusCode=200; 34 res.statusMessage='ok'; 35 res.setHeader('content-Type','text/html;charset=utf-8') 36 res.end(data) 37 } 38 }) 39 }) 40 // 设置服务器监听窗口 41 serve.listen(port,()=>{ 42 console.log(`serve runnint at http://localhost${port}`) 43 })
在package.json文件配置命令
当我们要执行的命令比较复杂时,可以将该命名配置到package.json文件中scripts字段中,并为该命令指定一个别名;
1 "scripts": { 2 "serve": "node server.js" 3 },
上面的代码为 node server.js指定了一个别名serve,然后我们可以通过npm的子命令run去执行该命令:
npm run serve
如果命令的别为start,则执行时可以省略子命令run
1 "scripts": { 2 "start": "node server.js", 3 },
npm start
本文作者:张尊娟
本文链接:https://www.cnblogs.com/wszzj/p/12051987.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本