gpt4 book ai didi

node.js - 使用 IISNode 将使用 Loopback.io 生成的 API 托管到 Azure

转载 作者:搜寻专家 更新时间:2023-10-31 23:42:09 25 4
gpt4 key购买 nike

所以我正在尝试一些未记录的事情。我在nodejs中使用loopback.io构建了一个简单的rest API,现在我想将其托管到azure网站。我 fork 了https://github.com/strongloop/loopback-getting-started并按照 https://azure.microsoft.com/en-us/documentation/articles/web-sites-nodejs-develop-deploy-mac/ 中所述的步骤进行操作

我能够推送文件并进行部署,但我不确定 IISNode 如何启动应用程序,因为 server.js 位于/server/server.js IISNode 无法在以下位置找到 server.js根目录并且不会创建 web.config。

我遇到了这个Point iisnode at server.js file nested in folder in an iis website但我无法让它在本地工作。这是我尝试过的

  • 在根级别创建一个包含内容的 server.js

require(__dirname + '\\server\\server.js')();

  • 注意到loopback以“node.”启动应用程序,我推断它使用packages.json中定义的主模块,因此我还将主模块位置从“/server/server.js”更改为“server.js”

{
"name": "Sample",
"version": "1.0.0",
"main": "server.js",
"scripts": {
"pretest": "jshint ."
},
"dependencies": {
"compression": "^1.0.3",
"cors": "^2.5.2",
"errorhandler": "^1.1.1",
"loopback": "^2.14.0",
"loopback-boot": "^2.6.5",
"loopback-datasource-juggler": "^2.19.0",
"serve-favicon": "^2.0.1"
},
"optionalDependencies": {
"loopback-explorer": "^1.1.0"
},
"devDependencies": {
"jshint": "^2.5.6"
},
"repository": {
"type": "",
"url": ""
},
"description": "Sample"
}

当我运行“node”时,这两个更改之后。我发现以下错误

C:\Users\anirudh\Documents\GitHub\Sample\node_modules\loopback\node_modules\express\lib\router\index.js:138
debug('dispatching %s %s', req.method, req.url);
^
TypeError: Cannot read property 'method' of undefined
at Function.handle (C:\Users\anirudh\Documents\GitHub\Sample\node_modules\loopback\node_modules\express\lib\router\index.js:138:33)
at EventEmitter.handle (C:\Users\anirudh\Documents\GitHub\Sample\node_modules\loopback\node_modules\express\lib\application.js:173:10)
at app (C:\Users\anirudh\Documents\GitHub\Sample\node_modules\loopback\node_modules\express\lib\express.js:38:9)
at Object.<anonymous> (C:\Users\anirudh\Documents\GitHub\Sample\server.js:1:105)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)

我不确定我错过了什么,任何帮助将不胜感激

最佳答案

我认为更好的方法是在项目的根目录中创建一个 .deployment 文件,该文件指向 Kudu(这是 Azure 用于获取已部署站点的 SCM(服务控制管理器),弄清楚它是什么,调整它,并使其在 IIS 上工作)到部署文件中的正确目录。

这很容易。只需在目录的根目录中创建一个名为 .deployment 的新文本文件并将其放入其中...

[config]
project = server

这将告诉部署脚本将服务器文件夹作为站点的根目录进行查找。希望这对您有用!

关于node.js - 使用 IISNode 将使用 Loopback.io 生成的 API 托管到 Azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31885248/

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