如何使用express服务器加载html中的JS文件

Rat*_*tan 5 javascript node.js express

我已将 js 放在公共目录中,并尝试在 HTML 中加载 js,但出现错误。

\n\n
\n\n
var express=require(\'express\');\nvar bodyparser=require(\'body-parser\');\nvar path=require("path");\nvar multer=require("multer");\nconsole.log(__dirname);\nvar app=express();\nvar upload = multer({ dest: __dirname + \'/uploads/\' });\n// app.set(\'views\', __dirname + \'/views\');\napp.use(bodyparser.json());\napp.use(bodyparser.urlencoded({extended:true}));\napp.use(express.static(path.join(__dirname, \'public\')));\n app.engine(\'html\', require(\'ejs\').renderFile);\napp.get(\'/\',(req,res)=>{\n     res.render(\'some.ejs\');\n});\napp.post(\'/\',upload.single(\'upl\'),(req,res)=>{\n    console.log(req.body);\n    console.log(req.file);\n})\napp.listen(3000,()=>{\n    console.log("server is up");\n})\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n

这是我加载 JS 的 HTML 代码:

\n\n
<script src="/public/web.js"></script>\n
Run Code Online (Sandbox Code Playgroud)\n\n

目录结构

\n\n
\xe2\x94\x9c public\n| \xe2\x94\x94 web.js\n\xe2\x94\x9c views\n| \xe2\x94\x94 some.ejs\n\xe2\x94\x94 server.js\n
Run Code Online (Sandbox Code Playgroud)\n

Rop*_*shi 1

要提供静态文件(例如图像、CSS 文件和 JavaScript 文件),请使用 Express 中的express.static 内置中间件函数。

app.use(express.static('public'))
Run Code Online (Sandbox Code Playgroud)

现在您可以提供 js、css 和图像等静态文件。