引入第三方模块
1、创建出项目文件夹
- 初始化出package.json文件,初始化命令为 npm init 。该命令需要一步步键入自己对项目的说明,使用npm init -y 可以跳过键入阶段(全部采用默认配置) 直接生成json文件
2、安装第三方模块的命令
- 一般 npm install (要安装的模块名称) [–save] 。
注意: --save如果不加则安装的依赖不会在json文件中列出来,反之会列出来。
save的好处是:如果删除了node_modules文件夹,直接使用 npm install 命令即可安装列表中的依赖
在所有的终端命令中 install 可以简写 => i --save命令可以简写 => -S
// 例如安装mime
npm install mime --save => npm i mime -S
{
"name": "lol", // 包的名称 不能使用中文
"version": "1.0.0", // 包的版本号
"description": "'project'", // 对项目的描述
"main": "index.js", // 项目的入口文件 配置了入口文件后在模块中引入该包的时候会直接加载该js文件
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "wang", // 包作者
"license": "ISC", // 证书 会自动生成
"dependencies": { // 依赖清单 npm install 会按照该清单安装所需要的依赖
"mime": "^2.4.6"
}
}
引入ejs模板
命令 npm install ejs --save ,npm 是安装命令也可以使用 cnpm命令,install意思是安装,ejs是指要安装的包的名称, --save是可选项( --save如果不加则安装的依赖不会再json文件中列出来 反之会列出来)
1. 使用ejs模板的方法
var http = require('http');
//在要使用ejs模板的模块中引入ejs
var ejs = require('ejs');
// 在需要使用模板的地方使用ejs语法
// 在模块中写入 renderFile是ejs渲染文件的方法 渲染的文件可以是ejs文件也可以是html文件
http.createServer(function(req, res) {
ejs.renderFile('要渲染的文件的路径', {
key:'要渲染的值',
status: true,
arr: [
'麻瓜', '麻瓜', '彼此彼此'
],
user: {
name: "劫",
hit: "叉子"
}
}, function(err, data) {
res.write(data)
res.end()
})
})
<!-- ejs模板在html中获取值的语法 -->
<body>
<!-- 渲染变量值得办法 -->
<div><%=key%></div>
<!-- ejs的判断语法 -->
<%if(status) {%>
<div>这实力status是true的时候要显示的内容</div>
<%} else if(判断条件) {%>
<div>这里是status是false并且判断条件是true的时候显示的内容</div>
<%} else {%>
<div>其他内容</div>
<%}%>
<!-- ejs列表渲染语法 -->
<ul>
<%for(var i = 0; i<arr.length; i++){%>
<li><%=arr[i]%></li>
<%}%>
</ul>
<!-- 渲染对象的值 -->
<div><%=user.name%></div>
</body>
简单服务器文件分离练习
1.服务开启文件
var start = require("./server"); //导入开启服务文件
var api = require("./resultHandle") //导入请求结果文件
//请求结果接口对接
var handle = {};
handle['/'] = api.deFault;
handle['/index'] =api.index;
handle['/login'] =api.login;
start.start(handle);
2.服务开启实现文件
var http = require('http');
var url = require("url");
var router = require('./router'); //导入路由处理文件
function start(handle) {
function requestHandle(request, response) {
var pathname = url.parse(request.url).pathname;//获取地址
response.writeHead(200,{"Content-type":"text/html;charset=utf-8"});
var content = router.handle(handle,pathname); //获取路由处理结果
response.write(content); //将结果写入页面
response.end();
}
http.createServer(requestHandle).listen(3000, function () {
console.log('Server is running');
});
}
module.exports = {
start: start
}
3.路由处理文件
function handle(handle,pathname){
if(typeof handle[pathname] === "function"){
return handle[pathname]();
}else{
return "404";
}
}
module.exports = {
handle
}
*4.请求结果处理
function deFault(){
return "默认地址页面"
}
function index(){
return "主页面";
}
function login(){
return "登录界面";
}
module.exports={
deFault,
index,
login,
}*