为什么我的 require 语句是一个立即调用的函数,为什么它会报错?

问题描述 投票:0回答:0

对于 uni,我在 node.js 服务器上工作。我正在按照讲座中使用的代码进行操作,但在 express.js 中遇到了持久会话的麻烦。在讲座幻灯片中使用了以下

require

var session = require('express-session');
var SQLiteStore = require('sqlite3')(session);

但是当我在代码中使用它时,出现以下错误:

var SQLiteStore = require("sqlite3")(session);
                                    ^

TypeError: require(...) is not a function
    at Object.<anonymous> (C:\Users\jordv\OneDrive\Documenten\UU\2022 -2023\Blok 3\Web Technology\test\server.js:12:37)
    at Module._compile (node:internal/modules/cjs/loader:1254:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
    at Module.load (node:internal/modules/cjs/loader:1117:32)
    at Module._load (node:internal/modules/cjs/loader:958:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47

我试图在网上找到解决方案,并找到了这篇文章 NodeJs : TypeError: require(...) is not a function。我试图理解最佳答案,但我就是做不到。我有两个问题:

  1. 在链接的帖子中,提到了立即调用的函数。为什么我的代码是立即调用的函数? (我的想法是错误信息说它不是一个函数,那么它是如何立即被调用的呢?)
  2. 那个帖子的答案应该如何适用于我的情况?

编辑: 在评论中有人建议

console.log(sqlite3)
。这给

{
  Database: [Function: Database],
  Statement: [Function: Statement],
  Backup: [Function: Backup],
  OPEN_READONLY: 1,
  OPEN_READWRITE: 2,
  OPEN_CREATE: 4,
  OPEN_FULLMUTEX: 65536,
  OPEN_URI: 64,
  OPEN_SHAREDCACHE: 131072,
  OPEN_PRIVATECACHE: 262144,
  VERSION: '3.41.1',
  SOURCE_ID: '2023-03-10 12:13:52 20399f3eda5ec249d147ba9e48da6e87f969d7966a9a896764ca437ff7e737ff',
  VERSION_NUMBER: 3041001,
  OK: 0,
  ERROR: 1,
  INTERNAL: 2,
  PERM: 3,
  ABORT: 4,
  BUSY: 5,
  LOCKED: 6,
  NOMEM: 7,
  READONLY: 8,
  INTERRUPT: 9,
  IOERR: 10,
  CORRUPT: 11,
  NOTFOUND: 12,
  FULL: 13,
  CANTOPEN: 14,
  PROTOCOL: 15,
  EMPTY: 16,
  SCHEMA: 17,
  TOOBIG: 18,
  CONSTRAINT: 19,
  MISMATCH: 20,
  MISUSE: 21,
  NOLFS: 22,
  AUTH: 23,
  FORMAT: 24,
  RANGE: 25,
  NOTADB: 26,
  LIMIT_LENGTH: 0,
  LIMIT_SQL_LENGTH: 1,
  LIMIT_COLUMN: 2,
  LIMIT_EXPR_DEPTH: 3,
  LIMIT_COMPOUND_SELECT: 4,
  LIMIT_VDBE_OP: 5,
  LIMIT_FUNCTION_ARG: 6,
  LIMIT_ATTACHED: 7,
  LIMIT_LIKE_PATTERN_LENGTH: 8,
  LIMIT_VARIABLE_NUMBER: 9,
  LIMIT_TRIGGER_DEPTH: 10,
  LIMIT_WORKER_THREADS: 11,
  cached: { Database: [Function: Database], objects: {} },
  verbose: [Function (anonymous)]
}
javascript node.js function require
© www.soinside.com 2019 - 2024. All rights reserved.