js可以加后面的后缀,也可以不加,一般不加
解压:tar zxvf +文件名
打包:tar zcvf +文件名.tar.gz nodejs/
组件化开发:把已有模块调用
这是关于关联css js等样式
default://处理来自本地目录的文件,主要是一些静态资源文件,搭建静态服务器还有其他的方法
var filename = url.pathname.substring(1);//去掉前导‘/’
var type = getType(filename.substring(filename.lastIndexOf('.')+1));
console.log(filename);、、取得文件类型 css js....
//异步读取文件,并将内容作为单位的数据模块传给回调函数
//对于确实很大的文件,使用API fs。createReadStream()更好
fs.readFile(filename,function(err,content) {
if (err) {
response.writeHead(404,{'Content-Type':'text/plain; charset="utf-8"'})
response.write(err.message);
response.end();
} else {
response.writeHead(200,{'Content-Type': type });
response.write(content);
response.end();
}
})
break;
这里定义了一个用来判断文件类型的函数
function getType(endTag){
var type=null;
switch (endTag) {
case 'html':
type = 'text/html;charset=utf-8';
break;
case 'htm':
type = 'text/html;charset=utf-8';
break;
case 'js':
type = 'application/javascript;charset=utf-8';
break;
case 'css':
type = 'text/css;charset=utf-8';
break;
case 'txt':
type = 'text/plain;charset=utf-8';
break;
case 'manifest':
type = 'text/cache-manifest;charset=utf-8';
break;
default
type = 'application/octet-stream';
break;
}
return type
}
客户端交互
//定义变量来读取字形流
var readline = require('readline');
//定义变量调用输入输出模块
var rl = readline.createInterface(process.stdin,process.stdout);
//在控制台输出文本
rl.setPrompt('请输入:')
//方法用于显示一个带有提示信息,并且用户可输入信息的对话框。
输出流
rl.prompt();
rl.on('line',(line));//形参不需要定义,直接调用
var str = line.trim();
//在控制台输出
console.log('你输入的是:'+ str);
rl.prompt();
//触发关闭事件执行输出
});.on('close',()=>{
console.log("欢迎你下次再来");
process.exit();
});
readline 模块
//定义变量来读取字形流
var readline = require('readline');
//引入hello文件
var sk = require('./hello');
//定义变量调用输入输出模块
var rl = readline.createInterface(process.stdin,process.stdout);
//在控制台输出文本
rl.setPrompt('请输入:')
//方法用于显示一个带有提示信息,并且用户可输入信息的对话框。
输出流
rl.prompt();
rl.on('line',(line));//形参不需要定义,直接调用
var str = line.trim();
//如果输入0执行关闭
if(str == '0'){
console.log("欢迎你下次再来");
process.exit();
}
else {
//调用hello方法
sk.shangke(str);
rl.prompt();
sk.h;
}
});
exports声明模块
//exports是nodeji一个关键,声明一个模块
exports.shangke = function(stringa){
console.log('这个是上课的模块'+ stringa);
}
//创建输出函数
function hello(){
console.log('this is hello')
}
exports.h=hello();
用nodejs实现IO交互在终端显示
const readline = require('readline');
const rl = readline,createInterface(process.stdin,rocess.stdout);
console.log("请输入任意字符,输入空字符或0表示退出");
//rl.setPrompt('请输入');
rl.prompt();
rl.cn('line',(line)=>{
if(line.trm()!=0){
console.log("您输入的是:"+line.trim());
}else {
rl.close();
}
}).on('close',()=>{
console.log("Have a great day!");
process.exit(0);
});
用nodejs 实现IO交互在浏览器中显示
var http = require('http');
var hostname = '192.168.96.128';
var port = 2000;
var fs = require('fs');
//处理字符串,字形流的模块
var qs = require('querystring');
var url = require('url');
http.createServer(onRequest).listen(port,hostname);;
function onRequest(request,response){
var pathname = url.parse(request.url).pathname;
// url地址解析 根据不同的url地址进行不同操作
if(pathname=='/'){
response.writeHead(200,('Content-Type':'text/html'));
fs.readFile("jsq.html","utf-8",function(e,data){
response.write(data);
response.end();
});
}else if(pathname=="/postlogin"){
var a ="";
var result = "";
request.addListener("data",function(postdata){
a +=postdata;
//qs是querystring方法
var b = qs.parse(a); //转换成json对象
//接收表单数据
var num1 = parseInt(b["num1"]);
var num2 = parseInt(b["num2"]);
var ysf = parseInt(b["ysf"]);
switch(ysf){
case 1:
result = add(num1,num2);
break;
case 2:
result = jian(num1,num2);
break;
case 3:
result = cheng(num1,num2);
break;
case 4:
result = chu(num1,num2);
break;
}
});
request,addListener("end",function(){
response.writeHead(200,("Content-Type":"text/html;charset=utf-8"));
fs.readFile("jsq.html","utf-8",function(e,data){
response.write(data);
response.write("结果:"+result);
response.end();
});
});
}else {
response.writeHead(200,("Content-Type":"text/html"));
response.write("error");
response.end();
}
}
//加法
function add(a,b){
return a+b;
}
//减法
function jian(a,b){
return a-b;
}
//乘法
function cheng(a,b){
return a*b;
}
//除法
function chu(a,b){
return a/b;
}
网友评论