使用一门语言来写程序,最麻烦的就是安装和配置,比如C#、Java,安装真是个麻烦事情,之所以在办公环境下我喜欢使用VBA和VBS来写程序很大的原因就是不需要安装。
今天晚上试了一下Node.js,很哇塞!
VBS本来也很强大,20年前的VBScript也就在IE浏览器里了,可是微软为什么就没有大面积的推广呢?!让现在的Node.js锋芒展现。
Node.js的官网地址:Node.js
我是Win7 64位,下载和试验了好几个版本,最后确定是13.14可以,下载下来直接安装,根本不需要做什么设置。Node.js安装好后npm也安装好了。
Windows 7 64位=>【Node.js 13.14.0 2020-04-29】
我的Node.js版本是13.14.0,npm的版本是6.14.4。
C:\Users\Administrator>node -v
v13.14.0
C:\Users\Administrator>npm -v
6.14.4
虽然用其他语言也可以写Web服务器,Node.js还是挺方便的。
//1.导入http模块创建Web服务器
const http=require('http')
//2.导入fs模块处理文件
const fs=require('fs')
//3.导入path模块处理路径
const path=require('path')
//以上三个模块都是Node.js官方提供的内置模块
const server=http.createServer()
server.on('request',(req,res)=>{
//得到客户端的请求URL地址
const url=req.url
//将客户端的请求URL映射为文件的实际存放路径
const filePath=path.join(__dirname,url)
console.log(`正在请求地址:${url},实际对应地址为${filePath}`)
//读取文件内容并返回给客户端
fs.readFile(filePath,'utf8',(error,data)=>{
if(error) {
let errorTxt='○○文件没有找到:'+filePath
console.log(errorTxt)
return res.end(errorTxt)
}
res.setHeader('Content-Type','text/html;charset=utf-8')
res.end(data)
})
})
server.listen(2022,()=>{
console.log('服务器正在运行,http://127.0.0.1:2022')
})
上面的代码保存为一个js文件HaoR02.js,直接使用node -HaoR.js便可以启动Web服务器了。
设置服务器端口先要查询C:\Windows\System32\drivers\etc下的services文件内容,保证2022端口没有被使用。
服务器启动:
输入网址:http://127.0.0.1:2022/login.html
可以看到网页内容,服务器端会有信息输出:
网页内容可以显示,有两个明显的问题:
1、背景图片已经找到并返回了,却没有显示,为什么?
因为文件的输出头信息不对,背景图片的文件头信息应该是Content-type:image/png。
所以,针对不同的文件应该返回不同的文件头信息。
2、有几个CSS和JS文件为什么没有找到?
为了强制从服务器上读取而在文件后面加了版本信息,针对这样的情况程序需要改进。
一个软件开发工具是否有持续的生命力,第三方库是一个特别重要的因素,Python之所以被那么多人喜欢,几乎无所不包、数量众多的第三方开发库就是一个特别吸引人的地方,只要你能想到的都有人为你写好了基础库,犹如为你放了一个起跳板。
Node.js还是挺强大的,也有数量众多的第三方库,后面慢慢学习。