nodeJS(二)

设置请求头

var http = require("http");
var fs = require("fs");
var server = http.createServer(function (req,res) {
    // 如果当前的url不是/favicon.ico,那么执行代码块
    if (req.url !== "/favicon.ico"){
        // 当前返回的额数据格式为html
        res.writeHead(200,{"Content-Type":"application/json"});
        // res.writeHead(200,{"Content-Type":"text/html"});
        // res.writeHead(200,{"Content-Type":"text/plain"});
        var obj = {
            name: "henry",
            age: 30,
            gender: "male"
        };
        res.end(JSON.stringify(obj));
    }
});
server.listen(8888,"127.0.0.1");
console.log("server is running....");

路由

// 引入模块
var fs = require('fs');
var http = require("http");
// 创建服务对象
var server = http.createServer(function (req,res) {
    if (req.url !== "/favicon.ico"){
        if(req.url == "/home" || req.url=="/"){
            res.writeHead(200,{"Content-Type":"text/html"});
            fs.createReadStream(__dirname+"/index.html").pipe(res);
        }else if(req.url == "/about"){
            res.writeHead(200,{"Content-Type":"text/html"});
            fs.createReadStream(__dirname+"/about.html").pipe(res);
        }else if(req.url == "/content"){
            res.writeHead(200,{"Content-Type":"text/html"});
            fs.createReadStream(__dirname+"/content.html").pipe(res);
        }else {
            res.writeHead(200,{"Content-Type":"text/html"});
            res.end("404网页请求失败");
        }
    };
})
// 监听端口号
server.listen(8888,"127.0.0.1");
console.log("server is running....");

express框架

// express 基于node.js的前端开发框架
// 引入express模块
var express = require("express");
// 使用变量接收express返回回来的对象
var app = express();
app.get("/",function (req,res) {
    res.sendFile(__dirname + "/index.html");
});
app.get("/contact",function (req,res) {
    res.send("asdfasdfa");
});
// 路由参数
app.get("/profile/:id",function (req,res) {
    res.send("你所访问的路由参数为: " + req.params.id);
});
app.listen(3333);

事件events
// 模块: 分为两种 1.自定义模块(movie.js) 2.系统模块(events)
/*

  • 自定义模块: 引入时必须要加路径
  • 系统模块: 引入时直接写名字
  • */
    // 事件模块
var events = require("events");
// element.on("click",callback); // jq的事件格式
// 实例化事件对象
var myEmitter = new events.EventEmitter();
// 注册事件
// myEmitter.on("事件名称","回调函数");
myEmitter.on("someEvent",function (msg) {
    console.log(msg);
});
// 触发事件
myEmitter.emit("someEvent","查看事件触发时,是否可以打印传递过去的参数!");
// util(使用工具)
const util = require("util");
var Person = function (name) {
    this.name = name;
}
// 通过使用工具,让Person类继承与事件类
util.inherits(Person,events.EventEmitter);
// 创建对象
var pengfei = new Person("鹏飞");
var wangfan = new Person("王帆");
var chunbo = new Person("波波");
var people = [pengfei,wangfan,chunbo];
// 遍历数组,并将数组中每个元素都注册事件
people.forEach(function (person) {
    person.on("sayHi",function (msg) {
        console.log(person.name + "对大家说:" + msg);
    });
})
// 触发事件
pengfei.emit("sayHi","大家好!");
wangfan.emit("sayHi","我很好!");
chunbo.emit("sayHi","Good Afternoon!");

模块的引用和导出
require()
exports

发布了90 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/me_never/article/details/102674288