在Node.js项目中,你不能直接在node_modules
文件夹中引用静态JS文件,因为node_modules
文件夹是用来存放第三方库和模块的。但是,你可以在项目的根目录下创建一个public
文件夹(如果没有的话),然后将静态JS文件放入该文件夹中。
要在Node.js项目中引用这些静态JS文件,你可以使用以下方法:
如果你的项目使用了Express框架,你可以使用express.static
中间件来提供静态文件。首先,确保你已经安装了Express:
npm install express
然后,在你的app.js
文件中添加以下代码:
const express = require('express');
const app = express();
const path = require('path');
// 设置静态文件夹
app.use(express.static(path.join(__dirname, 'public')));
// 其他路由和中间件...
// 启动服务器
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
现在,你可以在public
文件夹中放入你的静态JS文件,例如main.js
。然后,在HTML文件中引用它:
<script src="/main.js"></script>
如果你没有使用Express框架,你可以使用原生Node.js的http
模块和fs
模块来提供静态文件。在你的主文件(例如server.js
)中添加以下代码:
const http = require('http');
const fs = require('fs');
const path = require('path');
const server = http.createServer((req, res) => {
const filePath = path.join(__dirname, 'public', req.url === '/' ? 'index.html' : req.url);
const extname = String(path.extname(filePath)).toLowerCase();
const mimeTypes = {
'.html': 'text/html',
'.js': 'text/javascript'
};
const contentType = mimeTypes[extname] || 'application/octet-stream';
fs.readFile(filePath, (err, content) => {
if (err) {
res.writeHead(500);
res.end(`Error: ${err.code}`);
} else {
res.writeHead(200, { 'Content-Type': contentType });
res.end(content, 'utf-8');
}
});
});
const PORT = process.env.PORT || 3000;
server.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
现在,你可以在public
文件夹中放入你的静态JS文件,例如main.js
。然后,在HTML文件中引用它:
<script src="/main.js"></script>
领取专属 10元无门槛券
手把手带您无忧上云