创建一个简单的node服务器

源码地址:https://github.com/chunsenye/…

第一步:创建与访问

创建可通过http://localhost:8090/访问的服务器

server.js

var http=require('http')
var server= http.createServer(function(request,response){
    console.log('someone has visited my first node server !'); 
})
server.listen(8090,function(){
    console.log('server started at http://localhost:8090  ......')
});

代码解释:
1.首先得依赖http 这个不用npm安装 安装node之后就有了 所以直接依赖就可以
2.然后使用http.createServer(callback)方法创建一个未启动的服务器
3.最后启动一个监听8090端口的服务器

操作:

1.进入server.js所在的文件夹
2.输入 node server.js 运行js文件

《创建一个简单的node服务器》

3.访问 http://localhost:8090/

《创建一个简单的node服务器》

能访问服务器了,但是还没给响应。所以左上角一直在转,显示等待localhost响应。再看看服务器:

《创建一个简单的node服务器》

访问一次就会多一句信息输出。

第二步:让服务器响应访问

server.js

var http=require('http')
var server= http.createServer(function(request,response){
    console.log('someone has visited my first node server !'); 
    response.write('welcome to visited my first node server !');
    response.end();
})
server.listen(8090,function(){
    console.log('server started at http://localhost:8090  ......')
});

多了两句代码:

response.write('welcome to visited my first node server !');
//response就是响应 response.write()可以理解为往响应里面写内容
response.end();
//必须要end

最后的结果就是这样
《创建一个简单的node服务器》

第三步:根据访问链接来判断响应内容

var http = require('http')
var server = http.createServer(function (request, response) {
    console.log('someone has visited my first node server !');
    if (request.url === '/') {
        response.write('Home Page');
    } else if (request.url === '/login') {
        response.write('Login Page');
    } else if (request.url === '/register') {
        response.write('Register Page');
    } else {
        response.write(request.url);
    }
    response.end();
})
server.listen(8090, function () {
    console.log('server started at http://localhost:8090  ......')
});

代码解释:
request.url 的值其实就是http://localhost:8090 后面的内容
默认为/ 表示主页
如果是为/login 表示登录页面
如果是为/register 表示注册页面
否则 直接响应该链接

《创建一个简单的node服务器》

《创建一个简单的node服务器》

《创建一个简单的node服务器》

《创建一个简单的node服务器》
这里只是响应了一串字符串,怎么才能响应一个页面呢

第四步:响应HTML页面

server.js

var http = require('http');
// 导入文件读写的js
var fs = require('fs');
var server = http.createServer(function (request, response) {
    console.log('someone has visited my first node server !');
    //根据访问的路径来选择响应的文件
    let filePath;
    if (request.url === '/') {
        filePath='index.html';
    } else if (request.url === '/login') {
        filePath='login.html';
    } else if (request.url === '/register') {
        filePath='register.html';
    } else {
        filePath='notfound.html';
    }
    //读取文件并写入响应内容中去
    fs.readFile(filePath,function(err,data ){
        response.write(''+data);
        //不能直接写data 是16进制的数,需要转成字符串
        //我写data.toString() 会报错
        response.end();
    }) 
})
server.listen(8090, function () {
    console.log('server started at http://localhost:8090  ......')
});

通过上面的代码就可以实现根据不同的路径响应不同的文件了

项目文件目录

《创建一个简单的node服务器》

执行效果

《创建一个简单的node服务器》

《创建一个简单的node服务器》

《创建一个简单的node服务器》

《创建一个简单的node服务器》

到这里就初步完成了简单的可以响应文件的服务器了,但是还不能响应图片,不能加载js文件与css文件这些我暂时也还不会,慢慢学习。

我把每天的学习代码都放在我的GitHub上了,欢迎来★

https://github.com/chunsenye/…

    原文作者:yechunsen
    原文地址: https://segmentfault.com/a/1190000016590702
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞