欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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的數據庫模塊中,運行后報錯

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

前提

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

情景

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

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

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

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

原因

實際上這里涉及到數據庫操作異步的問題。

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

解決

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

代碼

// 用戶注冊
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)
            // 判斷影響行數是否為1 
            if (results.affectedRows !== 1) return res.cc('注冊用戶失敗,請稍后再試')
            // 用戶注冊成功
            return res.send({ status: 0, msg: '注冊成功!' })
        })
    })
}

總結

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

相關文章

  • node+express+jade制作簡單網站指南

    node+express+jade制作簡單網站指南

    上文我們介紹了使用node+express+ejs制作頁面,今天我們來看看使用node+express+jade制作簡單網站,本文記錄了一下整個搭建過程,給需要的小伙伴們參考下吧
    2014-11-11
  • 詳解HTTPS 的原理和 NodeJS 的實現

    詳解HTTPS 的原理和 NodeJS 的實現

    這篇文章主要介紹了詳解HTTPS 的原理和 NodeJS 的實現,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Nodejs回調加超時限制兩種實現方法

    Nodejs回調加超時限制兩種實現方法

    這篇文章主要介紹了Nodejs回調加超時限制兩種實現方法的相關資料,需要的朋友可以參考下
    2017-06-06
  • node事件循環(huán)和process模塊實例分析

    node事件循環(huán)和process模塊實例分析

    這篇文章主要介紹了node事件循環(huán)和process模塊,結合實例形式分析了node事件循環(huán)和process模塊具體功能、使用方法及相關操作注意事項,需要的朋友可以參考下
    2020-02-02
  • 利用yarn實現一個webpack+react種子

    利用yarn實現一個webpack+react種子

    其實以前就寫過如何使用React-router和Webpack快速構建一個react程序。后來發(fā)現版本太老,于是乎最近又重新組織了下結構,使用最近發(fā)布的yarn作為包管理工具,介紹下基本安裝步驟,有需要的朋友們下面來一起看看吧。
    2016-10-10
  • nodejs實現郵箱發(fā)送驗證碼功能

    nodejs實現郵箱發(fā)送驗證碼功能

    開發(fā)個人網站時,注冊頁面可以使用郵箱驗證,于是記錄一下如何用nodejs/express服務器實現郵箱發(fā)送驗證碼,不僅可以在郵箱注冊時使用,還可以拓展用于各種安全驗證,本文給大家介紹了使用nodejs實現郵箱發(fā)送驗證碼功能,需要的朋友可以參考下
    2024-07-07
  • 使用nodeJs來安裝less及編譯less文件為css文件的方法

    使用nodeJs來安裝less及編譯less文件為css文件的方法

    這篇文章主要介紹了使用nodeJs來安裝less及編譯less文件為css文件的方法,在文章末尾給大家補充介紹了通過nodejs將less文件轉為css文件的方法,具體內容詳情大家通過本文學習吧
    2017-11-11
  • Node.js原理阻塞和EventEmitter及其繼承的運用實戰(zhàn)

    Node.js原理阻塞和EventEmitter及其繼承的運用實戰(zhàn)

    這篇文章主要介紹了Node.js原理阻塞和EventEmitter及其繼承的運用實戰(zhàn),文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Express.JS使用詳解

    Express.JS使用詳解

    Express 是一個簡潔而靈活的 node.js Web應用框架, 提供一系列強大特性幫助你創(chuàng)建各種Web應用。下面我們將逐步分析下,各位不要輕易離開
    2014-07-07
  • node.JS md5加密中文與php結果不一致的解決方法

    node.JS md5加密中文與php結果不一致的解決方法

    本篇文章主要介紹了node.JS md5加密中文與php結果不一致的解決方法,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-05-05

最新評論