Javascript 设置Apache和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

我创建了一个存储在中的节点服务器(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
<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日志时,我