我是一名新手,正在学习NodeJs和Firebase。目前,我有一个带有Express的NodeJs项目,并且有以下文件结构:
` + /root
+ /db
- user.js
+ /domain
- user.js
+ /node_modules
- ...
+ /routes
- routes.js
- sever.js
- config.json`
我希望将此托管在Firebase上,但它会添加index.html等文件。如果我尝试使用Cloud函数,则会添加/functions目录,并在其中添加一个'index.js'文件,就像这样:
` + /root
+ /db
- user.js
+ /domain
- user.js
+ /functions
- index.js
+ /node_modules
- ...
+ /routes
- routes.js
- sever.js
- config.json
-firebase.json`
我会尝试将我的server.js代码粘贴到index.js中,但是我会遇到来自引用和缺少包的错误。
这是我的index.js代码:
const functions = require('firebase-functions');
var express = require('express');
var bodyparser = require('body-parser');
var app = express();
// Use bodyParser to parse the parameters
app.use(bodyparser.urlencoded({extended: true}));
app.use(bodyparser.json({limit: '10mb'}));
// Call the routes
require('../routes/routes')(app);
exports.api = functions.https.onRequest(app);
我的 routes.js 代码:
var userRoute = require('./users');
//Register routes and link to functions
module.exports = function(app){
app.post('/register', user.userRoute);
}
我的 firebase.json
{
"hosting" : {
"public" : "public",
"rewrites" : [{
"source" : "/",
"function" : "api"
}]
}
}
当我通过firebase serve --only functions本地运行时,一切都很完美,但是当我尝试部署时出现了问题。有什么想法吗?
npm install express -save
安装了 Express?同时,你需要在 index.js 脚本的顶部使用require
引入它。 - Ronnie Royston