gpt4 book ai didi

javascript - 无法运行 Node JS 部署到 Azure

转载 作者:行者123 更新时间:2023-12-03 01:43:19 25 4
gpt4 key购买 nike

我遵循了本教程:

https://learn.microsoft.com/en-us/azure/app-service/app-service-web-get-started-nodejs

我已经使用“Zip Deploy”工具部署了 Express JS 应用程序:

https://[app_name_here].scm.azurewebsites.net/ZipDeploy

当我尝试调用公共(public) API 时,不断收到错误消息“您正在查找的资源已被删除、名称已更改或暂时不可用。

奇怪的是,我的 Express JS 应用程序在本地运行得很好。我已尝试多次更改我的index.js以正确公开我的API路由,但在Azure上似乎没有任何效果。这是我当前的代码。

这确实有点无组织/困惑,因为我一直在合并来自 3 个不同 Express 应用程序的逻辑。

...

index.js

var express = require('express');
var cors = require('cors');
var bodyParser = require('body-parser');
var app = express();
var cookieParser = require('cookie-parser');
var path = require('path');
app.use(cors({ origin:'*' }));
app.set('port', (process.env.PORT || 5000));
app.use(bodyParser.json());

var indexRouter = require('./routes/index');
app.set('views', path.join(__dirname, 'views'));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);

//Router imports
var chainCoreDevRoutes = require('./routes/chainCoreDevRoutes');
var mongoDevRoutes = require('./routes/mongoDevRoutes');
var stuffMartServiceRoutes = require('./routes/stuffMartServiceRoutes');
app.use('/dev/chainCore', chainCoreDevRoutes);
app.use('/dev/mongo', mongoDevRoutes);
app.use('/api', stuffMartServiceRoutes);

//app.get('*', function(request, response) { response.sendFile(path.join(__dirname, 'public/index.html')); });

app.listen(app.get('port'), function() {
console.log('Node app is running wubbalubba dub dub! on port', app.get('port'));
});

...

routes/index.js

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});

module.exports = router;

...

web.config(Azure 环境所需)

<configuration>
<system.webServer>

<!-- indicates that the index.js file is a node.js application
to be handled by the iisnode module -->

<handlers>
<add name="iisnode" path="index.js" verb="*" modules="iisnode" />
</handlers>

<!-- adds index.js to the default document list to allow
URLs that only specify the application root location,
e.g. http://mysite.antarescloud.com/ -->

<defaultDocument enabled="true">
<files>
<add value="index.js" />
</files>
</defaultDocument>

</system.webServer>
</configuration>

最佳答案

我的解决方案:不要遵循教程/博客文章

我使用了 Visual Studio 2017,找到了一个名为“Basic Azure Node.js Express 4 App”的项目模板。基础项目运行顺利,只花了 5 分钟就完成了设置。

关于javascript - 无法运行 Node JS 部署到 Azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50455841/

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