1、Web服务器
web 服务器一词可以代指硬件或软件,或者是它们协同工作的整体。
2、NodeJS
2.1 简介
Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型,让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。
Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好,V8引擎执行Javascript的速度非常快,性能非常好,基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。
2.2 安装
2.3 使用
2.3.1 http-server(命令)
http服务器是一个简单的、零配置的命令行静态http服务器。它对于生产使用来说足够强大,但它足够简单和可破解,可以用于测试、本地开发和学习。
http-server好处:可以使静态资源文件的任意一个目录成为服务器的目录,完全抛开后台的沉重工作,直接运行想要的代码。
- 检测一下node版本
node -v
npm -v
- 安装http-server库
npm install -g http-server
# npm install --global http-server
cd test
http-server -p 8081
# http-server -a 0.0.0.0 -p 8000
可以看到本地服务器已经启动,并且在cmd窗口敲击键盘Ctrl + C可以终止服务器。 全局安装后可以在cmd中查看它的信息:
npm view http-server
npm info http-server
// or
npm -v hs
- http-server可用参数:
-p 要使用的端口(默认为8080)
-a 要使用的地址(默认为0.0.0.0)
-d 显示目录列表(默认为“True”) true / false
-i 显示autoIndex(默认为“True”)
-g或--gzip启用时(默认为“False”),它将用于./public/some-file.js.gz代替./public/some-file.jsgzip压缩版本的文件,并且该请求接受gzip编码。
-e或--ext默认文件扩展名(如果没有提供)(默认为'html')
-o 启动服务器后打开浏览器窗口
-c设置缓存控制max-age头的缓存时间(以秒为单位),例如-c10 10秒(默认为'3600')。要禁用缓存,请使用-c-1。
还可以通过npm run启动http-server服务器。 npm init -y 在文件夹下生成默认的package.json文件:
npm init -y
修改package.json如下:
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "awesome.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server.js",
"start2": "http-server -a 0.0.0.0 -p 8888",
"serve": "http-server -p 9090 dist/"
},
"keywords": [],
"author": "",
"license": "ISC"
}
然后再命令框中输入npm start或者npm run start2:
npm run start2
2.3.2 http
const http = require('http')
const PORT = 3000
const HOST = '127.0.0.1'
const server = http.createServer((req, res) => {
res.statusCode = 200
res.setHeader('Content-Type', 'text/plain')
res.end('hello world, yxy!\n')
})
server.listen(PORT, () => {
console.log(`服务器运行在 http://${HOST}:${PORT}/`)
})
或者
const http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain; charset=UTF-8'});
response.end('Hello World, yxy!\n');
}).listen(3000);
console.log('Server running at http://127.0.0.1:3000/');
//方式 1:
const http = require("http");
const server = http.createServer(function(req, res) {
// ......
});
server.listen(3000);
//方式 2:
const http = require("http");
const server = http.createServer();
server.on("request", function(req, res) {
// ......
});
server.listen(3000);
- 代码执行如下:
- 浏览器访问如下:
http://127.0.0.1:3000/
2.3.3 express
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World, yxy!');
})
var server = app.listen(8081, function () {
var host = server.address().address
var port = server.address().port
console.log("应用实例,访问地址为 http://%s:%s", host, port)
})
- 代码执行如下:
- 浏览器访问如下:
结语
如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;
╮( ̄▽ ̄)╭ 如果您感觉方法或代码不咋地
//(ㄒoㄒ)//,就在评论处留言,作者继续改进;
o_O??? 如果您需要相关功能的代码定制化开发,可以留言私信作者;
(✿◡‿◡) 感谢各位大佬童鞋们的支持!
( ´ ▽´ )ノ ( ´ ▽´)っ!!!