Node.js 深度体验

许劭
• 阅读 2432

Node.js模块系统

模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的

node.js

//代码 require('./love') 引入了当前目录下的love.js文件
var love = require('./love');

love.confession();
love.reject();

love.js

// 通过 exports 对象把 confession 作为模块的访问接口

exports.confession = function() { // 告白
    console.log('A:我喜欢你!');
}

exports.reject = function() { // 拒绝
    console.log('B:我们只是好朋友~');
}

输出

Node.js 深度体验


node.js

var Reason = require('./love');
Reason = new Reason(); // 实例化模块
Reason.confession();  // 调用模块方法
Reason.reject();
Reason.setName('TK');
Reason.sayReason();

love.js

function Reason() { // 模块
    var name;
    this.setName = function(iName) { //模块内自定义方法
        name = iName;
    };
    this.sayReason = function() {
        console.log(name+':不要喜欢我 , 我一点都不喜欢你!');
    };

    this.confession = function() { // 告白
        console.log('A:我喜欢你!');
    }

    this.reject = function() { // 拒绝
        console.log('B:我们只是好朋友~');
    }
};
module.exports = Reason;

输出

Node.js 深度体验

Node.js 函数

在JavaScript中,一个函数可以作为另一个函数接收一个参数。我们可以先定义一个函数,然后传递,也可以在传递参数的地方直接定义函数。

  • 自定义函数

nodejs.js

function sayLove(name) {
    console.log(name+'I Love You !');
}
    
function execute(functionName,value) {

    functionName(value);
}

execute(sayLove, "Silly Girl");

输出

Node.js 深度体验

  • 匿名函数

nodejs.js

function execute(functionName,value) {

    functionName(value);
}

execute(function(name){ console.log(name+'I Love You !'); }, "Silly Girl")

输出

Node.js 深度体验

Node.js 路由

  • url构成

                          url.parse(string).query
                                           |
           url.parse(string).pathname      |
                       |                   |
                       |                   |
                     ------ -------------------
http://localhost:8888/start?foo=bar&hello=world
                                ---       -----
                                 |          |
                                 |          |
              querystring(string)["foo"]    |
                                            |
                         querystring(string)["hello"]
  • 实例

nodejs.js

var http = require("http");
var url = require("url");
function onRequest(request, response) {
    var pathname = url.parse(request.url).pathname;
    var query = url.parse(request.url).query;
    var name = url.parse(request.url, true).query.name;
    var age = url.parse(request.url, true).query.age;
    console.log('url:' + request.url); // 请求url
    console.log('pathname:' + pathname); // url路径
    console.log('query:' + query); // ?后请求参数
    console.log('name:' + name); // 参数name的值
    console.log('age:' + age); // 参数age值
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("Get URL");
    response.end();
}

http.createServer(onRequest).listen(8888);
console.log("Server has started.");

运行

http://127.0.0.1:8888/start?name=TK&age=28

引用文字
输出

Node.js 深度体验

点赞
收藏
评论区
推荐文章
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Alex799 Alex799
4年前
Node.js 如何处理 ES6 模块
Node.js如何处理ES6模块作者:日期:学习JavaScript语言,你会发现它有两种格式的模块。一种是ES6模块,简称ESM;另一种是Node.js专用的CommonJS模块,简称CJS。这两种模块不兼容。很多人使用Node.js,只会用require()加载模块,遇到ES6
Easter79 Easter79
4年前
sql:mysql:函数:TIMESTAMPDIFF函数实现TimeStamp字段相减,求得时间差
<divclass"htmledit\_views"id"content\_views"<p&nbsp;函数内指定是minute,则最终结果value值的单位是分钟,如果函数内指定为hours,则最终结果value值单位为小时。</p<preclass"has"name"code"<codeclass"hljssql"<
Wesley13 Wesley13
4年前
java 反射得到属性与属性值
<divid"cnblogs\_post\_body"class"blogpostbody"<p反射可以破坏所有的封装性,比如这次通过反射得到的属性与属性值;</p<divclass"cnblogs\_code"<divclass"cnblogs\_code\_toolbar"<spanclass"cnblogs\_co
Stella981 Stella981
4年前
Node
node.js应用程序由如下三部分组成1导入所需模块:使用require指令来加载node.js模块2创建服务器:服务器可以监听客户端请求,类似于apache、nginx等3接收请求与响应请求:接收客户端/浏览器发送过来的请求,将处理得到的数据返回如下是第一个例子//步骤1:导入所需模块//这里我们使用re
Stella981 Stella981
4年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Stella981 Stella981
4年前
JSONArray数据转换成java List
<divid"cnblogs\_post\_body"class"blogpostbody"<p<spanstyle"fontsize:18pt"1.后台接收json数组转成封装实体类的List:</span</p<divclass"cnblogs\_code"<divclass"cnblogs\_code\_tool
Stella981 Stella981
4年前
Node.js 中使用 ECDSA 签名遇到的坑
文/Fenying最近有个朋友问我关于Node.js下使用ECDSA的问题,主要是使用Node.js的Crypto模块无法校验网络传输过来的签名结果。在踩坑无数后,终于搞清楚了原因。坑0x00:签名输出格式在排除了证书、消息不一致的可能之后,我开始对比使用Node.js签名的结果与网络传输过来的签
Stella981 Stella981
4年前
Elasticsearch基本概念及核心配置文件详解
<divid"cnblogs\_post\_body"class"blogpostbody"<p&nbsp;  Elasticsearch5.X,下列的是Elasticsearch2.X系类配置,其实很多配置都是相互兼容的</p<h2id"1配置文件"1.配置文件</h2<prename"code"<codeclass
Wesley13 Wesley13
4年前
go语言学习资源汇总
go官方wikihttps://code.google.com/p/go/(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fcode.google.com%2Fp%2Fgo%2F)https://code.google.com/p/gowiki/wiki/Articles(
许劭
许劭
Lv1
撩乱边愁听不尽,高高秋月照长城。
文章
4
粉丝
0
获赞
0