建立一个简单的node服务器

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

第一步:建立与访问html

建立可经过http://localhost:8090/访问的服务器node

server.jsgit

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端口的服务器github

操做:npm

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

clipboard.png

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

clipboard.png

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

clipboard.png

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

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

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/...

相关文章
相关标签/搜索