2016-03-02 123 views
0

我正在使用Node.js(Express,Swaggerize,Sequelize和SQLlite)测试Azure API应用服务。到目前为止,一切工作都在我的开发工作站上进行,但在尝试部署应用程序时遇到了一些问题。Azure API应用Node.js部署问题

首先,我创建了API应用程序“容器”,并将我的VSTS Git库与API容器连接起来。将代码推送到回购站时一切正常(自动容器在几秒钟内获得所有更改)。

但是......(问题(S)以下)

  1. 我怎样才能解决我的节点的依赖? (到目前为止,我一直在通过容器控制台手动调用“npm install”我不想在GIT仓库中推送我的包
  2. 我不能在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

你使用'npm install packagename --save'吗? –

+0

当然!我做到了。 – javierglozano

回答

0

看来,这个问题所造成的失踪故宫包sqlite3。所以你需要安装包man但是安装将失败,因为安装程序包sqlite3需要gyp编译器(根据软件包here的描述)不支持Azure App Service。

您可以参考文档Using Node.js Modules with Azure applications的部分Native Modules了解原因以及如何解决。

+0

我明白你的意思了。但是,如果我将后续方言切换到MySQL或其他任何方式,我可以期待同样的奇怪行为吗?我的意思是,是否有任何Node.js DB模块不是本地的?或者,也许我应该将API DB移动到另一个PaaS服务? – javierglozano

+0

@javierglozano它依赖于像''mysql'](https://www.npmjs.com/package/mysql)这样的节点包,它是用JavaScript编写的,不需要编译。 –

+0

谢谢@Peter-Pan-msft,但我想尝试SQLite。无论如何,谢谢你指点我。 – javierglozano