Javascript 设置Apache和Node.js
我创建了一个存储在中的节点服务器(node.js)Javascript 设置Apache和Node.js,javascript,node.js,apache,Javascript,Node.js,Apache,我创建了一个存储在中的节点服务器(node.js) /var/www/html/MCP/server.js 我需要在apache2服务器中运行此操作,节点服务器将侦听端口8080并收集用户输入,以便稍后保存在.JSON文件中。我将apache服务器配置为: <VirtualHost *:80> ServerAdmin me@uni.edu ServerName MCP.xyz.uni.edu ServerAlias www.MCP.xyz.uni.edu DocumentRoot
/var/www/html/MCP/server.js
我需要在apache2服务器中运行此操作,节点服务器将侦听端口8080并收集用户输入,以便稍后保存在.JSON文件中。我将apache服务器配置为:
<VirtualHost *:80>
ServerAdmin me@uni.edu
ServerName MCP.xyz.uni.edu
ServerAlias www.MCP.xyz.uni.edu
DocumentRoot /var/www/html/MCP
<Directory />
Options -Indexes +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ProxyRequests Off
ProxyPreserveHost On
ProxyVia Full
</Proxy>
<Location /nodejs>
ProxyPass http://127.0.0.1:8080
ProxyPassReverse http://127.0.0.1:8080
</Location>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warnCustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
服务器管理员me@uni.edu
服务器名MCP.xyz.uni.edu
ServerAlias www.MCP.xyz.uni.edu
DocumentRoot/var/www/html/MCP
选项-索引+FollowSymLinks
不允许超限
要求所有授权
代理请求关闭
代理主机
ProxyVia Full
ProxyPasshttp://127.0.0.1:8080
ProxyPassReversehttp://127.0.0.1:8080
ErrorLog${APACHE_LOG_DIR}/error.LOG
#可能的值包括:调试、信息、通知、警告、错误、临界值、,
#警惕,埃默格。
LogLevel warnCustomLog${APACHE_LOG_DIR}/access.LOG组合
现在,我的server.js是:
var http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello World! Node.js is working correctly.\n');
}).listen(8080);
console.log('Server running at http://127.0.0.1:8080/');
const express = require("express");
const app = express();
var path = require('path');
var bodyParser = require('body-parser');
app.use(express.static(path.join(__dirname + '/public')));
app.use(express.static(path.join(__dirname + '/task')));
app.use('/task/Stimuli', express.static(__dirname + '/task/Stimuli'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.get('/', (req, res) => {
res.sendFile('./MainTask.html', { root: __dirname });
});
app.get('/MainTask.html', (req, res) => {
res.sendFile('./MainTask.html', { root: __dirname });
});
app.post('/task/Info.html', (req, res) => {
res.sendFile('./task/Info.html', { root: __dirname });
var pass = req.body.pass;
console.log(pass);
});
app.get('/task/PhaseI.html', (req, res) => {
res.sendFile('./task/PhaseI.html', { root: __dirname });
});
app.get('/task/PhaseII.html', (req, res) => {
res.sendFile('./task/PhaseII.html', { root: __dirname });
});
app.get('/task/PhaseIII.html', (req, res) => {
res.sendFile('./task/PhaseIII.html', { root: __dirname });
});
app.post('/task/End.html', (req, res) => {
res.sendFile('./task/End.html', { root: __dirname });
var fs = require('fs');
var id = req.body.id;
var finalScore = req.body.finalscore;
var cueprobID = req.body.cueprobID;
var action1 = (req.body.action1).split(",");
var decision1 = (req.body.decision1).split(",");
var responseT1 = (req.body.responseT1).split(",");
var cuesL = (req.body.cuesL).split(",");
var cuesR = (req.body.cuesR).split(",");
var seqID = req.body.seqID;
var action2 = (req.body.action2).split(",");
var decision2 = (req.body.decision2).split(",");
var responseT2 = (req.body.responseT2).split(",");
var cuetestL = (req.body.cuetestL).split(",");
var cuetestR = (req.body.cuetestR).split(",");
var action3 = (req.body.action3).split(",");
var decision3 = (req.body.decision3).split(",");
var responseT3 = (req.body.responseT3).split(",");
var cuetestL2 = (req.body.cuetestL2).split(",");
var cuetestR2 = (req.body.cuetestR2).split(",");
var trial = (req.body.Trial).split(",");
var trial2 = (req.body.Trial2).split(",");
var trial3 = (req.body.Trial3).split(",");
var datap1 = [];
var datap2 = [];
var datap3 = [];
for (i = 0; i < action1.length; i++) {
datap1[i] = {
"trial": trial[i],
"id": id,
"finalScore": finalScore,
"cueprobID": cueprobID,
"seqID": seqID,
"action": action1[i],
"decision": decision1[i],
"responseTime": responseT1[i],
"CuesL": cuesL[i],
"CuesR": cuesR[i],
"Phase": 1
}
}
for (i = 0; i < action2.length; i++) {
datap2[i] = {
"trial": trial2[i],
"id": id,
"finalScore": finalScore,
"cueprobID": cueprobID,
"seqID": seqID,
"action": action2[i],
"decision": decision2[i],
"responseTime": responseT2[i],
"CuesL": cuetestL[i],
"CuesR": cuetestR[i],
"Phase": 2
};
}
for (i = 0; i < action3.length; i++) {
datap3[i] = {
"trial": trial3[i],
"id": id,
"finalScore": finalScore,
"cueprobID": cueprobID,
"seqID": seqID,
"action": action3[i],
"decision": decision3[i],
"responseTime": responseT3[i],
"CuesL": cuetestL2[i],
"CuesR": cuetestR2[i],
"Phase": 3
};
}
let file = [];
fs.writeFile('./Data/data.json', JSON.stringify(file), function (err) {
if (err) throw err;
});
fs.readFile('./Data/data.json', function (err, data) {
if (err) {
console.log(err);
}
var json = JSON.parse(data);
json.push(datap1);
json.push(datap2);
json.push(datap3);
fs.writeFileSync('./Data/data.json', JSON.stringify(json, null, 2), function (err) {
if (err) throw err;
});
fs.copyFile('./Data/data.json', './Data/' + id + '.json', function (err) {
if (err) throw err;
});
fs.unlink('./Data/data.json', function (err) {
if (err) throw err;
});
});
});
var http=require('http');
createServer(函数(请求、响应){
writeHead(200,{'Content-Type':'text/plain'});
end('Hello World!Node.js工作正常。\n');
}).听(8080);
console.log('服务器在运行http://127.0.0.1:8080/');
const express=要求(“express”);
常量app=express();
var path=require('path');
var bodyParser=require('body-parser');
app.use(express.static(path.join(uu dirname+/public));
app.use(express.static(path.join(uu dirname+'/task'));
app.use('/task/Stimuli',express.static(uu dirname+'/task/Stimuli');
use(bodyParser.json());
use(bodyParser.urlencoded({extended:true}));
应用程序获取(“/”,(请求,请求)=>{
res.sendFile('./mainstask.html',{root:_dirname});
});
app.get('/mainstask.html',(req,res)=>{
res.sendFile('./mainstask.html',{root:_dirname});
});
app.post('/task/Info.html',(req,res)=>{
res.sendFile('./task/Info.html',{root:_dirname});
var pass=req.body.pass;
控制台日志(pass);
});
app.get('/task/PhaseI.html',(req,res)=>{
res.sendFile('./task/PhaseI.html',{root:_dirname});
});
app.get('/task/PhaseII.html',(req,res)=>{
res.sendFile('./task/PhaseII.html',{root:_dirname});
});
app.get('/task/phaseii.html',(req,res)=>{
res.sendFile('./task/phaseii.html',{root:_dirname});
});
app.post('/task/End.html',(req,res)=>{
res.sendFile('./task/End.html',{root:_dirname});
var fs=需要('fs');
var id=req.body.id;
var finalScore=req.body.finalScore;
var cueprobID=req.body.cueprobID;
var action1=(req.body.action1).split(“,”);
var decision1=(请求主体decision1).拆分(“,”);
var responseT1=(req.body.responseT1).split(“,”);
var cuesL=(req.body.cuesL).split(“,”);
var cuesR=(req.body.cuesR).split(“,”);
var seqID=请求主体seqID;
var action2=(req.body.action2).split(“,”);
var decision2=(请求主体decision2).拆分(“,”);
var responseT2=(req.body.responseT2).split(“,”);
var cuetestL=(req.body.cuetestL).split(“,”);
var cuetestR=(req.body.cuetestR).split(“,”);
var action3=(req.body.action3).split(“,”);
var decision3=(请求主体decision3).拆分(“,”);
var responseT3=(req.body.responseT3).split(“,”);
var cuetestL2=(req.body.cuetestL2.split(“,”);
var cuetestR2=(req.body.cuetestR2.split(“,”);
var试验=(请求正文试验)。拆分(“,”);
var trial2=(req.body.trial2).split(“,”);
var trial3=(req.body.trial3).split(“,”);
var datap1=[];
var datap2=[];
var datap3=[];
对于(i=0;i
我遵循以下所有指示:
[https://www.ionos.com/community/server-cloud-infrastructure/nodejs/set-up-a-nodejs-app-for-a-website-with-apache-on-ubuntu-1604/][1]
我遇到的问题是,当我运行sudo pm2 start server.js时,我得到:
在fork_模式下启动/var/www/html/MCP/server.js(1个实例)
但是,任务没有运行,当查看pm2日志时,我