最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js報錯信息Error:?Cannot?find?module?'XXX'問題及解決

 更新時間:2023年10月07日 09:02:27   作者:誰把我名字用了!  
這篇文章主要介紹了Node.js報錯信息Error:?Cannot?find?module?'XXX'問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Node.js報錯信息Error: Cannot find module 'XXX'

在桌面新建一個記事本里面寫上我們熟悉的HelloWord保存為后綴為js

我寫的只是個HelloWord而已,不涉及到任何包管理工具,所以也別去折騰什么NPM了,這個錯誤只是單純的找不到文件。

簡單的解決辦法

在桌面空白處摁著Shift鍵不放鼠標右鍵,選中在此處打開命令窗口然后再編妥妥的,或者在DOS界面鍵入路徑。

心得:其實就是個路徑的問題啦~

Nodejs運行后報錯Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

問題

在node的數(shù)據(jù)庫模塊中,運行后報錯

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

前提

在node中,res.send()是不能被同時調用兩次及以上的,也正好印證了報錯信息中所說的 Cannot set headers

情景

在用戶注冊接口中,邏輯為:

  • 首先判斷用戶填寫的用戶名是否被占用
  • 如果沒有被占用,再將該用戶信息插入到用戶表中

以上邏輯需要用到兩次數(shù)據(jù)庫操作,即db.query()

最開始我想當然的把兩次數(shù)據(jù)庫操作并列書寫,結果就報錯了。

原因

實際上這里涉及到數(shù)據(jù)庫操作異步的問題。

據(jù)我推測,db.query()是異步的,也就是說兩次數(shù)據(jù)庫操作可能會同時發(fā)生,也就意味著可能同時發(fā)生兩次res.send()操作,從而出現(xiàn)錯誤。

解決

知道上述原因之后就好解決了,直接把第二次db.query()放到第一次db.query()的處理函數(shù)中。

代碼

// 用戶注冊
exports.userRegister = (req, res) => {
    const userinfo = req.body
    // 1.判斷是否合法 (已經采用第三方包來進行驗證,不用ifelse)
    // if (!userinfo.username || !userinfo.password) {
    //     // return res.send({ status: 1, msg: '用戶名或密碼不合法' })
    //     return res.cc('用戶名或密碼不合法')
    // }
    // 2.檢測用戶名是否被占用
    const sqlStr = 'select * from ev_users where username=?'
    db.query(sqlStr, userinfo.username, (err, results) => {
        // 執(zhí)行sql語句失敗
        if (err) {
            // return res.send({ status: 1, msg: err.message })
            return res.cc(err)
        }
        // 判斷用戶名是否被占用
        if (results.length > 0) {
            // return res.send({ status: 1, msg: '用戶名已被占用,請更換其他用戶名!' })
            return res.cc('用戶名已被占用,請更換其他用戶名!')
        }
        /**
         * 注意這里存在一個異步的問題。如果兩個db.query()并行寫,就會存在兩次res.send同時發(fā)送的情況。
         * 所以要避免,就把第二個db.query放在第一個db.query里面
         */
        // 3.調用bcrypt.hashSync對用戶密碼進行加密
        userinfo.password = bcrypt.hashSync(userinfo.password, 10)
        // 4.插入用戶記錄
        const sql = 'insert into ev_users set ?'
        db.query(sql, { username: userinfo.username, password: userinfo.password }, (err, results) => {
            // 判斷是否注冊成功
            if (err) return res.cc(err)
            // 判斷影響行數(shù)是否為1 
            if (results.affectedRows !== 1) return res.cc('注冊用戶失敗,請稍后再試')
            // 用戶注冊成功
            return res.send({ status: 0, msg: '注冊成功!' })
        })
    })
}

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 如何用Node寫頁面爬蟲的工具集

    如何用Node寫頁面爬蟲的工具集

    這篇文章主要介紹了如何用Node寫頁面爬蟲的工具集,主要介紹了三種方法,分別是Puppeteer、cheerio和Auto.js,感興趣的小伙伴們可以參考一下
    2018-10-10
  • 詳解node單線程實現(xiàn)高并發(fā)原理與node異步I/O

    詳解node單線程實現(xiàn)高并發(fā)原理與node異步I/O

    本篇文章主要介紹了node單線程實現(xiàn)高并發(fā)原理與node異步I/O ,具有一定的參考價值,有興趣的可以了解一下
    2017-09-09
  • 新入門node.js必須要知道的概念(必看篇)

    新入門node.js必須要知道的概念(必看篇)

    下面小編就為大家?guī)硪黄氯腴Tnode.js必須要知道的概念(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • NodeJS模塊與ES6模塊系統(tǒng)語法及注意點詳解

    NodeJS模塊與ES6模塊系統(tǒng)語法及注意點詳解

    這篇文章主要給大家介紹了關于NodeJS模塊與ES6模塊系統(tǒng)語法及注意點的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01
  • 圖解NodeJS實現(xiàn)登錄注冊功能

    圖解NodeJS實現(xiàn)登錄注冊功能

    這篇文章主要介紹了NodeJS實現(xiàn)登錄注冊功能,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • node.js中的events.emitter.removeAllListeners方法使用說明

    node.js中的events.emitter.removeAllListeners方法使用說明

    這篇文章主要介紹了node.js中的events.emitter.removeAllListeners方法使用說明,本文介紹了events.emitter.removeAllListeners 的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 使用node搭建自動發(fā)圖文微博機器人的方法

    使用node搭建自動發(fā)圖文微博機器人的方法

    這篇文章主要介紹了使用node搭建自動發(fā)圖文微博機器人的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • node+koa實現(xiàn)數(shù)據(jù)mock接口的方法

    node+koa實現(xiàn)數(shù)據(jù)mock接口的方法

    本篇文章主要介紹了node+koa實現(xiàn)數(shù)據(jù)mock接口的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Node輸出日志的正確方法示例

    Node輸出日志的正確方法示例

    這篇文章主要為大家介紹了Node輸出日志的正確方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • nodejs+express實現(xiàn)文件上傳下載管理網站

    nodejs+express實現(xiàn)文件上傳下載管理網站

    這篇文章主要為大家詳細介紹了nodejs+express實現(xiàn)文件上傳下載管理的網站,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03

最新評論

大姚县| 库尔勒市| 铜鼓县| 琼海市| 盘锦市| 都江堰市| 永仁县| 如皋市| 云南省| 临洮县| 湾仔区| 嘉义市| 湘乡市| 鹿邑县| 交城县| 扶风县| 滁州市| 偏关县| 织金县| 南城县| 称多县| 普兰县| 克什克腾旗| 古浪县| 屏边| 文山县| 乳山市| 叙永县| 中超| 通道| 光泽县| 东安县| 三江| 永年县| 东台市| 北安市| 东乡县| 无棣县| 西安市| 敦煌市| 阿拉尔市|