您现在的位置是:烟消火灭网 > 综合

nodejs创建服务器并连接上

烟消火灭网2026-10-17 08:02:31【综合】6人已围观

简介 nodejs创建服务器并连接上 先别急着装框架。原生Node.js几行代码就能起一个HTTP服务器,这事比你想的简单。我见过不少新手一上来就怼Express,结果连最基础的req和res对象都没摸透

nodejs创建服务器并连接上

先别急着装框架。创建原生Node.js几行代码就能起一个HTTP服务器,服务这事比你想的器并简单。我见过不少新手一上来就怼Express,连接结果连最基础的创建req和res对象都没摸透。今天咱们就干一件事:用最裸的服务Node.js把服务器跑起来,然后用浏览器连上它。器并

打开终端,连接新建一个文件夹,创建随便叫啥都行。服务在里面创建一个server.js文件,器并然后敲下这段代码:

const http = require('http'); const server = http.createServer((req,连接 res) => {  res.writeHead(200, { 'Content-Type': 'text/plain'}); res.end('Hello, 你连上我了!\n'); }); server.listen(3000,创建 () => {  console.log('服务器跑在 http://localhost:3000'); });

保存,运行node server.js。服务终端会打印出那行提示。器并这时候别关终端,打开浏览器,地址栏输入localhost:3000,回车。你会在页面上看到那句问候。

就这么简单?对,就这么简单。但这里头有几个点值得琢磨。

你看createServer里那个回调函数,它接收两个参数——请求对象和响应对象。Node.js把HTTP协议封装成了这两个东西,你只需要关心“收到请求后怎么回应”。这跟传统后端语言里处理请求的方式很像,但Node.js是事件驱动的,回调触发时服务器已经在内存里待命了。

再说说listen。第一个参数是端口号,我用了3000,因为8000可能被占,8080也常见,但3000在Node社区里几乎成了默认暗号。第二个参数是个回调,服务器成功监听后执行。这里有个容易踩的坑:如果端口被占用,这里会抛错。你可以试试把端口改成80,然后运行——大概率会报权限错误,因为非管理员账户没资格用80端口。这就是为什么开发时大家都用大端口。

连接上之后,你可以打开浏览器的开发者工具,切到Network标签,刷新页面。你会看到一条对localhost:3000的请求,状态码200,响应体就是那行字。这算不算“连接上”了?严格说,HTTP是无连接的,每次请求都是独立的TCP连接。但浏览器帮你管理了这些细节,你看到的是页面内容,实际上背后是一次完整的请求-响应循环。

有人会问,那“连接”到底指什么?在Node里,server.listen之后,Node就在指定端口上监听了。当有客户端(比如浏览器)发起TCP连接,Node接受它,然后触发请求事件。这个过程中,你可以用server.on('connection')去监听原始连接,但平时用不着——回调函数已经够用了。

如果你想让服务器响应更丰富一点,可以改改res.writeHead里的Content-Type,比如换成text/html,然后返回一段带标签的字符串。浏览器就会把它当HTML渲染。试试看,把res.end的内容改成'<h1>标题</h1><p>段落</p>',刷新页面,你会看到样式变了。这就是服务器返回内容的威力——你控制的是字节流,浏览器负责解释。

最后提醒一句:别忘了用Ctrl+C停掉服务器。不然它一直占着3000端口,下次运行会报EADDRINUSE错误。如果你遇到这个报错,要么换端口,要么找到占用进程杀掉。Windows下用netstat -ano | findstr :3000查PID,Mac/Linux用lsof -i :3000。这些命令记不住也没关系,多踩几次坑就熟了。

现在你已经有了一个能响应的服务器。它很简陋,没有路由,没有中间件,但它是活的。接下来你想加什么——处理表单、返回JSON、还是连数据库?那都是后面的事。先把这段代码跑熟,理解请求和响应的流转,比啥都强。

很赞哦!(927)