一:node是什么?
node只是平臺,或者說是環境,其實用的還是js語法
主要框架express以及koa,兩個框架是同一個團隊開發,node中也有類似于php的Ci框架的MVC模式
一個完整的node構成:node.js+express+mysql
二:工作代碼的順序:
此外,默認的端口號為3000,底層如啟動命令也可以配置,node支持的導出為module.exports(整體導出) / exports(單個導出),模塊引用為require
三:node中modules.exports與exports
node中使用require和modules.exports以及exports是因為node遵循CommonJS規范。
CommonJS定義的模塊分為: 模塊標識(module)、模塊定義(exports) 、模塊引用(require)
使用范圍
| require | export / import | module.exports / exports |
|---|---|---|
| node 和 es6 都支持的引入 | 只有es6 支持的導出引入 | 只有 node 支持的導出 |
exports與modules.exports指向相同地址
exports ->{}<- modules.exports
我理解為實際上每次都是導出modules.exports,本來指向一個地址,如下會切斷modules.exports和exports分別指向兩個地址
a.js
modules.exports = {a:2}exports.a = 1 app.js
var a = require ('./a')console.log(a.a) // 執行node app 打印2類比
var obj = new Object();obj.name = 'lisi'//情況一:對象.屬性// obj.sayHello 相當于export.sayHelloobj.sayHello = function () { console.log(this.name) // lisi}obj.sayHello(); //情況二:對象.方法//obj相當于module.exportsobj = { sayHello: function () { // . ... }.}console.log(obj.name) // undefinedobj.sayHello(); obj.name(); // 打印不出lisi,已經重寫obj,obj下面沒有name方法此文章也是自己的學習記錄,如有不足,歡迎指正指導。也希望大家多多支持武林網。
新聞熱點
疑難解答