Mal*_*ick 4 deployment firebase google-cloud-firestore
我正在尝试将我的功能部署到 firebase,但收到以下错误:
函数加载错误:无法加载文件index.js中的代码。您是否在 package.json 依赖项中列出了所有必需的模块?
Detailed stack trace: Error: Cannot find module 'express'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object. (/user_code/index.js:6:15)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
Run Code Online (Sandbox Code Playgroud)
火力基地:
“firebase-admin”:“~5.8.1”
“firebase-functions”:“^0.8.1”
这个问题已经在这里提出: https: //github.com/firebase/firebase-tools/issues/515(但对于“firebase-admin”模块)
根据那里的输入,我尝试这样做: npm install --save-exact firebase-functions@0.7.0 npm install --save-exact firebase-admin@5.4.0。但我遇到了以下错误:
错误:解析函数触发器时发生错误。请在函数文件夹中运行“npm i --save firebase-functions@latest”,确保您拥有最新的 firebase-functions SDK。
节点版本,v8.4.0。
索引.js
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
var express = require('express');
var bodyParser = require('body-parser');
const users = require('../functions/controllers/users.controller');
var app = express();
app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json());
app.post('/users', users.createUsers);
exports.myappusers = functions.https.onRequest(app);
Run Code Online (Sandbox Code Playgroud)
用户.controller.js
const admin = require('firebase-admin');
const db = admin.firestore();
exports.createUsers = function(req, res){
if(!req.body.name){
return res.status(404).send({message: 'User name cannot be empty'})
}
else{
db.collection('user-test')
.add({
name: req.body.name
})
.then((writeResult) => {
return res.json({ result: `User ID: ${writeResult.id} added.`});
})
.catch((err)=>{
return res.status(500).send(err);
})
}
}
Run Code Online (Sandbox Code Playgroud)
在花了一天的时间之后,我做了显而易见的事情。我安装了 Express 并进行了部署,但这次我对 body-parser 也遇到了相同的错误,_Error: Cannot find module 'body-parser'_
也安装了 body-parser。再次部署,瞧!部署成功。
但我不太确定为什么我必须显式安装它们,即使文件夹中存在这express两个模块。body-parsernode-modules
概括:
npm install --save --save-exact express@4.16.2
npm install --save --save-exact body-parser@1.18.2
firebase deploy --only functions
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9422 次 |
| 最近记录: |