【小沐学Python】Web服务器搭建(Node.js)
  I6bYKJOwynuQ 2023年11月19日 26 0

1、Web服务器

web 服务器一词可以代指硬件或软件,或者是它们协同工作的整体。

2、NodeJS

在这里插入图片描述

2.1 简介

https://nodejs.org/zh-cn

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 安装

https://nodejs.org/zh-cn 在这里插入图片描述

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??? 如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡) 感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
I6bYKJOwynuQ