我正在使用Node.js(Express,Swaggerize,Sequelize和SQLlite)测试Azure API App服务。到目前为止,一切都在我的开发工作站中工作,但在尝试部署应用程序时遇到了一些问题。
首先,我创建了API App“容器”,并将我的VSTS Git repo与API容器连接起来。将代码推送到repo时,一切都运行良好(容器会在几秒钟内自动获得所有更改)。
但......(问题如下)
我不能在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)
有什么东西我不见了吗?
答案 0 :(得分:1)
似乎问题是由于错过了npm包sqlite3
。因此,您需要手动安装软件包,但安装将失败,因为软件包sqlite3
的安装需要gyp
编译器(根据软件包here的说明)不支持Azure App Service。
您可以参考文档Using Node.js Modules with Azure applications的Native Modules
部分,了解原因以及如何解决。