美文网首页
创建一个服务器能根据不同的url地址请求不同的文件模板

创建一个服务器能根据不同的url地址请求不同的文件模板

作者: dabing520 | 来源:发表于2016-08-10 09:05 被阅读0次

1.小知识点总结

* Xshell 使用open打开一个虚拟机;

* linux 中创建一个空白的日志文件用touch命令;

* http 是nodejs的服务模块

* fs 是文件服务器模块

* url是url路由模块

2.创建nodejs服务器;

//定义主机IP常量名称

const ip = '192.168.0.102';

//定义端口号

const port = 2000;

//引入的组建模块  http、url、fs

const http = require('http');

const url = require('url');

const fs = require('fs');

//创建一个服务

var server = http.createServer(function(req,res){

res.writeHead(200,{'Content-Type':'text/plain'});

res.write('my nodejs');

res.end();

});

//监听一个端口

server.listen(port,ip,function(){

console.log('server start');

});

3.获取URL部分块的内容 url;

const ip = '192.168.1.118';//主机IP

const port = 2001;//端口号

//引入的组建模块  http、url、fs

const http = require('http');

const url = require('url');

const fs = require('fs');

//创建服务的回掉函数

var funSer = function(req,res){

//获取url地址块的内容  如:/path/show

var parth = url.parse(req.url).pathname;

res.write(parth);

res.end();

}

//监听端口的回掉

var fun = function(){

console.log('server start');

}

var server = http.createServer(funSer).listen(port,ip,fun);

4.读取文件的内容 File System;

const ip = '192.168.1.118';//主机IP

const port = 2001;//端口号

//引入的组建模块  http、url、fs

const http = require('http');

const url = require('url');

const fs = require('fs');

//真正打印文件内容

fs.readFile('./index.html', (err, data) => {

if (err) throw err;

//打印字符串内容

console.log(data.toString());

});

//创建服务的回掉函数

var funSer = function(req,res){

//获取url地址块的内容  如:/path/show

var parth = url.parse(req.url).pathname;

res.write(parth);

res.end();

}

//监听端口的回掉

var fun = function(){

console.log('server start');

}

var server = http.createServer(funSer).listen(port,ip,fun);

5. 完整实例(根据不同的url地址请求不同的文件【模板】)

const ip = '192.168.1.118';//主机IP

const port = 2001;//端口号

//引入的组建模块  http、url、fs

const http = require('http');

const url = require('url');

const fs = require('fs');

//实例化一个服务容器

var server = new http.Server();

//监听一个端口

server.listen(port , ip);

//注册一个事件处理的on方法

server.on('request' , function(req , res){

//获取请求的url地址

var url = urls.parse(req.url);

//console.log(url.pathname);

//根据path路径来读取不同的模板文件

switch( url.pathname ){

case '' || '/':

//读取文件内容

fs.readFile('./index.html',function( error, content){

if(error){//如果有错误时,显示错误信息

res.writeHead(400,{'Content-Type':'text/plain;charset="utf-8"'});

res.write(error.message);

res.end();

}else{

//正确时浏览器输出模板文件的内容

res.writeHead(200,{'Content-Type':'text/html;charset="utf-8"'});//头信息

res.write(content);//模板文件内容

res.end();

}

});

break;

case '/list':

fs.readFile('./list.html',function( error, content){

if(error){

res.writeHead(400,{'Content-Type':'text/plain;charset="utf-8"'});

res.write(error.message);

res.end();

}else{

res.writeHead(200,{'Content-Type':'text/html;charset="utf-8"'});

res.write(content);

res.end();

}

});

break;

case '/show':

fs.readFile('./show.html',function( error, content){

if(error){

res.writeHead(400,{'Content-Type':'text/plain;charset="utf-8"'});

res.write(error.message);

res.end();

}else{

res.writeHead(200,{'Content-Type':'text/html;charset="utf-8"'});

res.write(content);

res.end();

}

});

break;

default:

fs.readFile('./default.html',function( error, content){

if(error){

res.writeHead(400,{'Content-Type':'text/plain;charset="utf-8"'});

res.write(error.message);

res.end();

}else{

res.writeHead(200,{'Content-Type':'text/html;charset="utf-8"'});

res.write(content);

res.end();

}

});

break;

}

});

相关文章

  • nodejs 静态资源服务器作业

    完整实例(根据不同的url地址请求不同的文件【模板】) 复习 抽象方法及获取URL部分块的内容 url 读取文件...

  • 创建一个服务器能根据不同的url地址请求不同的文件模板

    1.小知识点总结 * Xshell 使用open打开一个虚拟机; * linux 中创建一个空白的日志文件用tou...

  • 20160810笔记 nodejs交互

    复习: 静态服务器的搭建 url地址的获取 根据url地址显示不同模板 io交互 从键盘获取内容 引入外部文件 v...

  • 20160810周国康笔记

    复习 静态服务器的搭建 url地址的获取 根据url地址显示不同模板 本次内容--ReadLine Readlin...

  • 0810_io交互&web表单交互

    课前回顾 静态服务器 url地址获取 fs文件操作 根据不同url返回不同页面 新内容(终端IO交互, web表单...

  • Drupal覆写模板文件的命名

    我们可以为不同的条件创建不同的模板文件,Drupal会根据条件来判断到底来使用哪一个模板文件。创建这些模板文件要使...

  • Vue-路由

    路由可以分为前端路由和后端路由 后端路由: 概念:根据不同的用户url请求,返回不同的内容 本质:URL请求地址和...

  • Node-4

    路由与模板引擎 路由:简单来说就是,根据不同请求的URL,处理不同的业务逻辑; ESJ模板引擎:是一种后台模板,可...

  • 03-Node-http模块

    Node - http 模块HTTP 协议是什么创建服务器根据 url 地址响应不同的内容动态响应静态资源获取 G...

  • 【融职培训】Web前端学习 第5章 node基础教程7 模板引擎

    一、模板引擎概述 上一节我们通过Koa创建了一个web服务器,并可以根据用户请求路径的不同响应不同的页面,但是每一...

网友评论

      本文标题:创建一个服务器能根据不同的url地址请求不同的文件模板

      本文链接:https://www.haomeiwen.com/subject/hhadsttx.html