node基本概念、语法、相关api

node是一个JavaScript运行时环境

浏览器中的JavaScript(ECMA标准、DOM、BOM)

node中没有(DOM、BOM),有核心模块

特性:非阻塞IO模型和事件驱动

node 三模块

  1. 核心模块(由node提供的http、fs、os、path。。。)
  2. 第三方模块(express框架。。。)
  3. 用户自定义模块(js文件)

在node中没有全局作用域,只有模块作用域(外部js文件拿不到内部js文件的成员变量,内部js文件也拿不到外部js文件的成员变量)

通过require(" 模块名称 "); 进行加载

通过exports导出模块文件 

require()有两个作用

  1. 加载文件模块并执行里面的代码
  2. 拿到被加载文件模块导出的接口对象

exports

  1. 多个接口对象导出:module.exports.属性 = 值
  2. 单个接口对象导出:module.exports = 值

exports === module.exports  , 所以可以省略module

但是最终返回的是module.exports

启动node(在当前文件下执行)

node app.js(也就是文件名)

node.js API地址:http://nodejs.cn/api/

express.js API地址:http://www.expressjs.com.cn/

Content-Type:设置地址http://tool.oschina.net/commons

基本的服务端脚本

/*加载http服务器*/
var http = require('http');
/*加载文件操作*/
var fs = require("fs");
/*创建一个web服务器,用server实例接收*/
var server = http.createServer();
/*监听request请求事件,设置请求处理函数*/
server.on("request",function (request,response) {
    var url = request.url;
    if(url === "/"){
        fs.readFile("./04请求文件.html",function (error,data) {
            if(error){
                response.setHeader("Content-Type","text/plain;charset=utf-8");
                response.end("文件加载失败,请稍后重试。。。");
            }else{
                response.setHeader("Content-Type","text/html;charset=utf-8");
                response.end(data);
            }
        })
    }else if(url ==="/meimei"){
        fs.readFile("./meimei.jpg",function (error,data) {
            if(error){
                response.setHeader("Content-Type","text/plain;charset=utf-8");
                response.end("文件加载失败,请稍后重试。。。");
            }else{
                response.setHeader("Content-Type",'image/jpeg');
                response.end(data);
            }
        })
    }
});
/*绑定端口号,启动服务*/
server.listen("3000",function () {
    console.log("Server is running");
})

猜你喜欢

转载自blog.csdn.net/weixin_42661283/article/details/86669716