nodejs是什么?
6609c93d70cf3bc79f3ded3c434bada1cd11738bfc82.png他是一个基于Chrome V8引擎的JavaScript运行环境(它不是语言,也不是框架),通过nodejs,JavaScript可以完全脱离浏览器运行,也可以用于搭建服务器。
搭建步骤和环境
-
基于macOS Monterey 12.2.1的苹果操作系统搭建。
-
nodejs版本为v17.2.0 可以在官网地址:https://nodejs.org/zh-cn/download/ 下载对应版本。
-
引入依赖http库【加载nodejs提供的api,此模块负责创建和编写服务器】,引入依赖events库【此模块负责监听事件】
-
通过http.createserver()来创建web服务器
-
通过new events.EventEmitter()创建事件监听对象来监听请求url
-
通过http.createserver().listen(port,ip)进行端口和ip的绑定。启动成功后,就可以通过ip+端口号来进行访问。
实例:
server.js
var http = require("http");
var url = require('url');
var util = require('util');
var queryString = require("querystring");
const error_api = "404"
const {
exit
} = require("process");
var events = require('events');
// 创建 eventEmitter 对象
var eventEmitter = new events.EventEmitter();
// route 404
eventEmitter.on(error_api, function(method, response) {
response.writeHead(404, {
'Content-Type': 'text/plain'
});
response.end('404 Not Found\n');
});
// 启动服务
http.createServer(function(request, response) {
console.log(request.url);
console.log('method=' + request.method + 'content-type=' + request.headers["content-type"]);
var post = '';
// // 通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中
request.on('data', function(chunk) {
post += chunk;
});
// 在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回。
request.on('end', function() {
console.log('post=' + post);
response.writeHead(200, {
'Content-Type': 'text/html; charset=UTF8',
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "*" //跨域请求处理
});
eventEmitter.emit(request.url, request.method, response);
});
}).listen(8888, '127.0.0.1'); //替换自己的ip 和对应的端口
console.log('Server running at 127.0.0.1:8888/');
启动服务:
打开Terminal终端 进入到server.js 文件目录下输入:
node server.js
尾声
本文主要目的是为了刚做的小工具使用的技术做个简单记录,如果对你有帮助深感荣幸。
网友评论