nodeJs学习笔记

今天开始学习nodeJs

node.js是什么?
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
有了Node.js,我们也不用依赖浏览器来调试我们js代码了。

安装完毕之后,就可以使用了。

每个.js文件nodejs就认为是一个模块。
例如:nodejs1.js
'use strict'

var s = 'Hello';

var b = 'Bye';

function greet(name){
console.log(s+','+name+'!');
}

function goodBye(name){
console.log(b+','+name);
}

module.exports = greet;
module.exports = goodBye;


最后exports表示向外提供的函数或者对象(函数也是对象)



main.js

'use strict'

var g = require('./nodejs1');

var s = 'Kevin';

g(s)


结果是什么?
Bye,Kevin

引入nodejs1这个模块,最后只应用了该模块最后一行向外提供的对象,如何都应用?留个问题在这里。

nodejs向外提供对象有两种方式
exports.obj1 = greet;
exports.obj2 = goodBye;

或者
module.exports = {
obj1: greet,
obj2: goodBye
};


这两个是等效的。
但是使用exports只能用.(点操作符)来赋值,不能用类似初始化,来初始化exports
例如:
exports = {
obj1: greet,
obj2: goodBy
} 是错误的,有些IDE会直接提示编译错误,这是nodejs内部实现导出模块决定的。


如果我们要编写一个模块,一定要确保别人引用的时候是可以使用的。

刚才的问题就有了答案了,我们如果要对外提供模块中的两个对象,需要用
exports.obj1 = greet;
exports.obj2 = goodBye;

或者
module.exports = {
obj1: greet,
obj2: goodBye
};


而不能是我上边写的,这样写等于是重新给module.exports赋值了,引用就换成了goodBye的引用了。

既然是向外提供对象,那就不仅仅是函数了。只要是对象就可以向外提供,例如:
module.exports = {
obj1: greet,
obj2: goodBye,
default:"hahaha"
};


var greet = require('./nodejs1');

var s = 'Kevin';


greet.obj1(s);
var def = greet.default;

console.log(def);


输出:
Hello,Kevin!
哈哈哈
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值