zoukankan      html  css  js  c++  java
  • nodejs中自定义模块中的一个小坑,记录一下;

    在nodejs中,一般一个js文件作为一个模块,最后以  module.exports = xxx; 结尾;就可以在其他文件引用了,我这里有自定义模块代码如下

    const puppeteer = require('puppeteer');
    
    class Craw {
        constructor() {
    
        }
    
        async init() {
            this.browser = await puppeteer.launch({
                headless: false // 关闭无头模式
            });
            this.page = (await this.browser.pages())[0]
        }
    }
    
    module.exports = Craw;

    这是一个puppeteer,准备做一个请求主动探测,作为一个漏扫工具的一部分;然后想在其他模块中调用,调用模块代码如下

    const Craw = require('./libs/craw')
    
    (async () => {
        const craw1 = new Craw();
        await craw1.init();
    })();

    但是问题来了,这时候竟然报错了一脸的黑人问号!!!!

    报错如下:

    "D:Program Files
    odejs
    ode.exe" F:GoProjectswordscandockerpupcrawmain.js
    F:GoProjectswordscandockerpupcrawmain.js:3
    (async () => {
    ^
    
    TypeError: Class constructor Craw cannot be invoked without 'new'
        at Object.<anonymous> (F:GoProjectswordscandockerpupcrawmain.js:3:1)
        at Module._compile (internal/modules/cjs/loader.js:1256:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:1277:10)
        at Module.load (internal/modules/cjs/loader.js:1105:32)
        at Function.Module._load (internal/modules/cjs/loader.js:967:14)
        at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
        at internal/main/run_main_module.js:17:47
    
    Process finished with exit code 1

    各种问题各种找;最后发现,在  const Craw = require('./libs/craw')  后边加上分号结尾,竟然好了;

    由于不经常写node代码,对这个不是太熟悉;谨以此作为记录

  • 相关阅读:
    JAVA中添加jar包
    shell 脚本读取数据库示例
    Div 布局之 DIV垂直居中显示
    awk 学习笔记
    提示ufmyhr日志已满,无法继续操作软件,如何解决
    12种貌似卫生的不卫生习惯
    远程通客户端反复提示要下载客户端软件
    固定资产反启用后再启用报00:00:00错误
    2008年5月14日
    睡前六个必要动作,一觉睡到大天亮
  • 原文地址:https://www.cnblogs.com/lzy575566/p/13443210.html
Copyright © 2011-2022 走看看