创建一个简单的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文件

clipboard.png

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

clipboard.png

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

clipboard.png

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

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

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

最后的结果就是这样
clipboard.png

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

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 表示注册页面
否则 直接响应该链接

clipboard.png

clipboard.png

clipboard.png

clipboard.png
这里只是响应了一串字符串,怎么才能响应一个页面呢

第四步:响应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  ......')
});

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

项目文件目录

clipboard.png

执行效果

clipboard.png

clipboard.png

clipboard.png

clipboard.png

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

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

https://github.com/chunsenye/...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值