1.普通的http请求
//使用 HTTP 服务器和客户端
var http = require('http')
//创建一个web服务器 并且返回server实例
var server = http.createServer()
//当服务器收到request事件的时候触发后面的回调函数
server.on('request',function(request,response){
response.setHeader("Access-Control-Allow-Origin","*");
console.log("收到客户端的请求了")
let arr = {
"name": "zhangsan",
"password":"123456"
};
//返回的信息放在write()里
// response.write(JSON.stringify(array));
//或者通过end发送-----推荐
//结束这次请求,如果不结束客户端将接收不到信息
response.end(JSON.stringify(arr))
})
//绑定端口号,启动服务器
server.listen(3000,function(){
})
2.require方法
1.require('art-template') //如果路径不加./ ../ 则它会去node_modules中寻找包名为art-template的文件 即第三方包的加载方式
2.require('./a') //加了./ ../ 这两种路径的请求时 他会去当前或者上一级中找文件,不会去node_module中寻找 即加载自己写的文件
3.两个js之间的调用
通过require加载模块
a.js
var b = require('./b.js')
console.log(b.add(100,200))
b.js
//第一种是导出多个成员
exports.add = function(x,y){
return x+y;
}
//第二种是导出单个成员
module.exports.b = function(x,y){
return x+y;
}
module.exports.add = function(x,y){
return x-y;
}
//两种方法在一个文件中可以同时出现,如果前后的成员不一样则会将两种方法的成员结合暴露出去
//如果后面一种中的成员和前面一种中的成员出现一样,则会出现后面暴露的方法中的成员覆盖前面暴露的方法的成员 比如上的的exports.add方法会被emodule.exports中的add方法覆盖
//但是如果是下面这种方法导出单个成员变量然后又有exports.a这种方式导出变量,那么通过exports导出的成员都将无效
module.exports = {
add:function(x,y){
return x+y
},
acc:function(x,y){
return x-y;
}
}
//关键在于最终暴露出去的方法是这样的 => return module.exports 如果对module.exports重新复制,那么exports所指向的对象就和module.exports所指向的对象不同
//比如下面这个例子
var moduleExports = {
}; //这个相当于module.exports
var exports = moduleExports ; //这个相当于exports
//这个时候module.exports 与exports所指向的对象是同一个
//那么你对exports进行赋值的话moduleExports 中的值也会发生改变
exports.a = "foo";
console.log(moduleExports.a); //此时输出的结果为foo
//这就相当于上面的module.exports.b exports.a 无轮你对谁赋值都能进行保存
//但是如果这个时候你对moduleExports 进行重新赋值
//此时moduleExports与exports 所指向的是不同的对象,所以你对exports赋值作用不到moduleExports上
moduleExports = {
};
console.log(moduleExports.a);//这个时候就找不到这个a成员
//这就相当于上面的
//module.exports = function(){
// add:function(x,y){
// return x+y
// },
// acc:function(x,y){
// return x-y;
// }
//}
//然后又由于nodejs文件暴露的是module.exports 所以你在对module.exports 重新赋值后再去设置exports的成员变量在另一个文件夹是获得不到那些成员变量的
4.Express
1.安装
npm install express --save
2.hello world
const express = require('express')
//express() ---> http.createServer()
var server = express