国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

node中modules.exports與exports導出的區別

2019-11-19 13:40:52
字體:
來源:轉載
供稿:網友

一:node是什么?

node只是平臺,或者說是環境,其實用的還是js語法

主要框架express以及koa,兩個框架是同一個團隊開發,node中也有類似于php的Ci框架的MVC模式

  1. M->model數據層的增刪改差操作
  2. V->view視圖層
  3. C->controller路由控制,主要起到轉發工作

一個完整的node構成:node.js+express+mysql

二:工作代碼的順序:

  1. app.js為node的入口文件,
  2. 在view寫好html文件,模板可以任意,
  3. rouer負責路由跳轉
  4. controllers負責具體業務方法的操作,在這個文件里涉及到的增刪改差放在model中
  5. model負責數據的操作

此外,默認的端口號為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方法

此文章也是自己的學習記錄,如有不足,歡迎指正指導。也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 铁岭县| 桐梓县| 陵川县| 贵州省| 基隆市| 台南县| 万载县| 安西县| 鄱阳县| 枞阳县| 昆明市| 来凤县| 台北县| 集贤县| 巴楚县| 衡东县| 夹江县| 榆林市| 宁蒗| 香河县| 富锦市| 台北县| 罗定市| 江油市| 濮阳市| 寿阳县| 夏津县| 温州市| 玛纳斯县| 林芝县| 赣州市| 元江| 微博| 栖霞市| 鹤岗市| 诸暨市| 西乌| 古浪县| 永寿县| 申扎县| 丰顺县|