wujr5 / modern-web-programming-report

中山大学数据科学与计算机学院 modern web programming 课程问题总结或反馈
7 stars 1 forks source link

第九次作业报告 & 浅谈nodejs模块化 & 服务端调试 #7

Open wujr5 opened 8 years ago

wujr5 commented 8 years ago

第九次作业报告 & 浅谈nodejs模块化 & 服务端调试

1 作业总结

周四班第九次作业总结

2 nodejs模块化

2.1 同学作业例子

Example code

2.2 简单模块化

2.2.1 nodejs包管理器:npm

NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。npm提供了命令行工具,使你可以方便地下载,安装,删除包,也可以让你作为开发者发布并维护包。

2.2.2 服务器端模块化简单方式

exports and require

exports是模块公开的借口。 require用于从外部获取一个模块的接口,即获取模块的exports对象。

创建模块

一个文件就是一个模块

// module.js
var name;

exports.setName = function(n) {
    name = n;
}

exports.sayHello = function() {
    console.log("Hello " + name);
}
// getModule.js

var myModule = require('./module');

myModule.setName("xiaoming");
myModule.sayHello();

输出:

Hello xiaoming

覆盖exports

将对象封装到模块中。

// singleobject.js

function Hello() {

    var name;

    this.setName = function(n) {
        name = n;
    }

    this.sayHello = function() {
        console.log("Hello " + name);
    }
}

exports.Hello = Hello;

但是这时候,需要通过一下语句来获取对象。

require('./singleobject.js').Hello;

略显冗余。

以下方法简化了一些。

// hello.js

function Hello() {

    var name;

    this.setName = function(n) {
        name = n;
    }

    this.sayHello = function() {
        console.log("Hello " + name);
    }
}

module.exports = Hello;

获取语句:

var hello = require('./hello');

3 服务端调试

安装:

npm install -g node-inspector

使用:

node --debug-brk=5858 server.js

然后打开新命令行,运行:

node-inspector

浏览器访问

nodejs后台程序:http://localhost:8080/debug?port=5858

程序运行界面:http://localhost:8000