Azure API 应用程序 Node.js 部署问题
Azure API App Node.js deployment issues
我正在使用 Node.js(Express、Swaggerize、Sequelize 和 SQLlite)测试 Azure API 应用服务。到目前为止,一切都在我的开发工作站上运行,但我在尝试部署应用程序时遇到了一些问题。
首先,我创建了 API 应用 "container" 并将我的 VSTS Git 存储库与 API 容器连接起来。将代码推送到存储库时一切正常(容器会在几秒钟内自动获取所有更改)。
但是...(以下问题)
- 如何解决我的 Node 依赖项? (到目前为止,我一直在通过容器控制台手动调用 "npm install"。我不想将我的包推送到 GIT 仓库
我不能在 sequelize 中使用 SQLite 方言,因为尽管该包似乎在我的应用程序依赖项中并且在 node_modules 目录中,但我的应用程序仍然会抛出异常
Wed Mar 02 2016 16:57:16 GMT+0000 (Coordinated Universal Time): Unaught exception: Error: Please install sqlite3 package manually
at new ConnectionManager (D:\home\site\wwwroot\node_modules\sequelize\lib\dialects\sqlite\connection-manager.js:24:11)
at new SqliteDialect (D:\home\site\wwwroot\node_modules\sequelize\lib\dialects\sqlite\index.js:12:28)
at new Sequelize (D:\home\site\wwwroot\node_modules\sequelize\lib\sequelize.js:213:18)
at Object.<anonymous> (D:\home\site\wwwroot\app\models\index.js:8:17)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at Object.<anonymous> (D:\home\site\wwwroot\app\app.js:11:14)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at Object.<anonymous> (D:\home\site\wwwroot\server.js:3:1)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
有什么我遗漏的吗?
问题似乎是缺少 npm 包造成的 sqlite3
。所以你需要手动安装包,但是安装会失败,因为包sqlite3
的安装需要gyp
编译器(根据包here的描述)不支持Azure 应用服务。
您可以参考文档 Using Node.js Modules with Azure applications 的 Native Modules
部分以了解原因和解决方法。
我正在使用 Node.js(Express、Swaggerize、Sequelize 和 SQLlite)测试 Azure API 应用服务。到目前为止,一切都在我的开发工作站上运行,但我在尝试部署应用程序时遇到了一些问题。
首先,我创建了 API 应用 "container" 并将我的 VSTS Git 存储库与 API 容器连接起来。将代码推送到存储库时一切正常(容器会在几秒钟内自动获取所有更改)。
但是...(以下问题)
- 如何解决我的 Node 依赖项? (到目前为止,我一直在通过容器控制台手动调用 "npm install"。我不想将我的包推送到 GIT 仓库
我不能在 sequelize 中使用 SQLite 方言,因为尽管该包似乎在我的应用程序依赖项中并且在 node_modules 目录中,但我的应用程序仍然会抛出异常
Wed Mar 02 2016 16:57:16 GMT+0000 (Coordinated Universal Time): Unaught exception: Error: Please install sqlite3 package manually at new ConnectionManager (D:\home\site\wwwroot\node_modules\sequelize\lib\dialects\sqlite\connection-manager.js:24:11) at new SqliteDialect (D:\home\site\wwwroot\node_modules\sequelize\lib\dialects\sqlite\index.js:12:28) at new Sequelize (D:\home\site\wwwroot\node_modules\sequelize\lib\sequelize.js:213:18) at Object.<anonymous> (D:\home\site\wwwroot\app\models\index.js:8:17) at Module._compile (module.js:413:34) at Object.Module._extensions..js (module.js:422:10) at Module.load (module.js:357:32) at Function.Module._load (module.js:314:12) at Module.require (module.js:367:17) at require (internal/module.js:16:19) at Object.<anonymous> (D:\home\site\wwwroot\app\app.js:11:14) at Module._compile (module.js:413:34) at Object.Module._extensions..js (module.js:422:10) at Module.load (module.js:357:32) at Function.Module._load (module.js:314:12) at Module.require (module.js:367:17) at require (internal/module.js:16:19) at Object.<anonymous> (D:\home\site\wwwroot\server.js:3:1) at Module._compile (module.js:413:34) at Object.Module._extensions..js (module.js:422:10) at Module.load (module.js:357:32) at Function.Module._load (module.js:314:12)
有什么我遗漏的吗?
问题似乎是缺少 npm 包造成的 sqlite3
。所以你需要手动安装包,但是安装会失败,因为包sqlite3
的安装需要gyp
编译器(根据包here的描述)不支持Azure 应用服务。
您可以参考文档 Using Node.js Modules with Azure applications 的 Native Modules
部分以了解原因和解决方法。