首页 > 解决方案 > 无法在 express 中加载 javascript 文件

问题描述

我正在制作一个快速网络应用程序,但无法导入 javascript 文件。

board.js,我有一条线const utility = require('./utility');。此语句给出错误:ReferenceError: require is not defined

VSCode 建议转换const utility = require('./utility');为 ES6 模块。接受该建议后的结果是:import { generateRandomData } from './utility';.

如果我这样做,之前的错误就会消失,但会出现一个新的错误SyntaxError: import declarations may only appear at top level of a module

这是项目的文件夹结构:

在此处输入图像描述

server.js

const express = require("express");
const app = express();
const path = require('path');

const PORT = process.env.PORT || 5000

app.listen(PORT, () => {
    console.log("server started")
});

app.use(express.static(path.join(__dirname + '/public')))

app.get('/', (req,res) => {
    res.sendFile(__dirname + "/index.html")
});

utility.js

const hello = () => {
    console.log('hello');
}

module.exports.hello = hello;

我还应该如何导入 javascript 文件board.js

标签: javascriptexpress

解决方案


您的公共目录通过 server.js 中的 express.static 变为静态。因此,从客户端调用公共文件不会通过 express 而是通过客户端的浏览器。

如果你的 JS 直接在浏览器中播放,你应该使用import 和 export而不是 require 。


推荐阅读