首页 > 解决方案 > 为什么节点 js 中的云功能没有正确部署

问题描述

这里我使用云函数创建用户我正在使用 express 模块当我尝试部署此代码时,它部署到云函数并显示错误消息:函数未正确部署

const express = require('express');
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const serviceaccount = require('./ServiceAccountKey.json');

const app = express();

admin.initializeApp({
credential: admin.credential.cert(serviceaccount)
});


app.post('/',(req,res)=>{
if(req.method!== 'POST'){
    res.status(400).send("what are u trying baby");
    return;
}
admin.auth().createUser({
    email:req.body.email,
    password: req.body.pass,
}).then(function(userRecord){
    res.send({'uid': userRecord.uid});
    return;
}).catch(function(error){
    res.send({'error': 'Try COrrect one baby'});
    return;
});
return;
});
exports.register = funtions.Https.onRequest(app);

当我在最后添加这个

module.exports = {
app
}

它显示已部署的功能,但未在云功能仪表板中显示

我在这里做错了什么

这是我得到的错误我得到的错误是什么

⚠  functions[register(us-central1)]: Deployment error.
Function failed on loading user code. Error message: Code in file index.js     can't be loaded.
Did you list all required modules in the package.json dependencies?
Detailed stack trace: Error: Cannot find module 'express'
at Function.Module._resolveFilename (module.js:476:15)
at Function.Module._load (module.js:424:25)
at Module.require (module.js:504:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/user_code/index.js:1:79)
at Module._compile (module.js:577:32)
at Object.Module._extensions..js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)


Functions deploy had errors with the following functions:
    register

标签: node.jsfirebasegoogle-cloud-functions

解决方案


您的代码从不使用firebase-functions模块来声明云函数。您的functions变量将未使用。您不能只导出任何期望它运行的函数——它必须由 SDK 构建。

如果您有要部署的 express 应用程序,则需要通过 HTTP 类型函数将其导出:

exports.app = functions.https.onRequest(app);

推荐阅读