gpt4 book ai didi

node.js - 使用 Express 提供 node_module 服务

转载 作者:行者123 更新时间:2023-12-02 20:50:40 25 4
gpt4 key购买 nike

我正在尝试在 SPA 平均堆栈应用程序中为我的客户提供特定的 Node 模块。我的应用程序结构如下:

-应用程序/

--index.html

-node_modules/

-index.js

我想通过在我的index.js 文件中执行此操作,使模块 angular-simple-sidebar 在我的前端可用:

'use strict';
let express = require('express');
let routes = require('./api/routes');
let path = require('path');

app.use((req, res, next) => {
req.start = Date.now();
next();
});

// ***** THIS IS THE PROBLEM LINE *****
app.use('/scripts', express.static(__dirname + '/node_modules/angular-simple-sidebar'));


app.use(express.static(path.join(__dirname, './app')));
app.use(routes);

app.get('/', (req, res) => {
res.sendFile('index.html', {
root: ('./app')
});
});

/* GET Api index page */
app.get('*', (req, res) => {
res.send('404 page not found!', 404);
});

app.listen(3000, () => {
console.log('Express server is listening on port 3000');
});

module.exports = app;

然后在我的index.html 文件中使用该路径:

<head>
<script src="scripts/angular-simple-sidebar.min.js"></script>
</head>

但是我在 Chrome 控制台中得到的只是:

chrome console output

如有任何帮助,我们将不胜感激!

最佳答案

我也尝试过同样的方法,但它对我有用。

我加载了外部 CSS 文件。

这是我的代码


index.js

// Get the required modules
const express = require('express');


let path = require('path');

const port = process.env.PORT || 8080;

const host = 'localhost';

var app = express();


// For serving static assets

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

app.use('/css', express.static(__dirname + '/css'));

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

// Start Server
app.listen(port, function (){
console.log(`Server running on http://${host}:${port}`)
});

public/index.html(在您的情况下,这是app/index.html)

<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="css/style.css" rel="stylesheet">
</head>
<body>
<h1>Hello World</h1>
</body>
</html>

css/style.css

h1{
color: red;
}

此外,尝试删除提供静态文件并运行的“脚本”部分。


index.js

// ***** THIS IS THE PROBLEM LINE *****
app.use( express.static(__dirname + '/node_modules/angular-simple-sidebar'));

index.html

<head>
<script src="angular-simple-sidebar.min.js"></script>
</head>

如果上述无法运行,请提供更多详细信息或通过 Github 分享代码。

关于node.js - 使用 Express 提供 node_module 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42271953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com