我正在一个包含表格的网站上工作。 我的要求是收集每个用户的所有表单数据。
这是一个资金紧张的学术项目,因此我使用的是heroku免费服务器空间。
我选择了node.js表达框架。 创建了一个简单的表单,并在提交时,它将json写入该文件。以下是代码。
//require the express nodejs module
var express = require('express'),
//set an instance of exress
app = express(),
//require the body-parser nodejs module
bodyParser = require('body-parser'),
//require the path nodejs module
path = require("path");
var fs = require("fs");
//support parsing of application/json type post data
app.use(bodyParser.json());
//support parsing of application/x-www-form-urlencoded post data
app.use(bodyParser.urlencoded({ extended: true }));
//tell express that www is the root of our public web folder
app.use(express.static(path.join(__dirname, 'www')));
//tell express what to do when the /form route is requested
app.post('/form',function(req, res){
res.setHeader('Content-Type', 'application/json');
//mimic a slow network connection
setTimeout(function(){
res.send(JSON.stringify({
firstName: req.body.firstName || null,
lastName: req.body.lastName || null
}));
var fileContent = JSON.stringify(req.body);
fs.writeFile("./sample.txt", fileContent, (err) => {
if (err) {
console.error(err);
return;
};
console.log("File has been created");
});
}, 1000)
//debugging output for the terminal
console.log('you posted: First Name: ' + req.body.firstName + ', Last Name: ' + req.body.lastName);
});
app.set('port', (process.env.PORT || 5000));
app.listen(app.get('port'), function() {
console.log("Node app is running at localhost:" + app.get('port'));
});
当我在localhost上运行它时,它可以很好地工作,创建一个文件。
但是当我在heroku上部署它,然后运行,然后克隆repo时,没有文件。
虽然这是低级问题,但在更高级别,我只想要一个具有动态表单和服务器空间的网页来收集这些数据。我不想花很多时间在这项活动上,因为我的实际工作是基于数据。我很确定github页面不起作用。我们集成了谷歌表单,它可以工作,但网页不是动态的。因此,我从高级别问题到特定低级别问题的具体问题是:
是否有用于创建网页和收集数据的框架? heroku是灵活的选择吗?数据生成不会很大,我们预计每周的数据量为20MB。
我是否必须连接mysql或mongoDB等数据库,然后才能收集数据?如果是的话,我是否可以通过快速教程演示任务的“hello world”?
在这个特定的问题中,出了什么问题,因为它按照我对localhost的方式工作。
我非常愿意接受新的建议,这可能与我目前的思考过程完全不同,但从长远来看,我可以省时间。感谢您的帮助..