我为我的好友建了一个NodeJS / Angular项目。一切都在当地工作正常,但一旦我把项目现场,我得到一个错误。该网站是chestnutdetailing.com,如果您尝试设置约会,您可以复制我得到的错误。我相信错误是我的server.js或app.js文件。我正在使用Express。当它尝试POST / contact时,我收到404错误,如下图所示。 error message。
这是我的server.js代码
console.log("made it in the server file");
var express = require('express');
var mysql = require('mysql');
var bodyParser = require('body-parser');
var nodemailer = require('nodemailer');
var app = express();
app.use(bodyParser.json({}));
app.listen(8080, function () {
console.log("Listening on port 8080.....")
});
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
var connection = mysql.createConnection({
host: 'db694694191.db.1and1.com',
port:3306,
user: '.....',
password: '.....',
database: 'db694694191'
});
connection.connect();
app.post('/contact', function(req, res, next){
//console.log(req.body);
var appointment = req.body;
var query = connection.query('insert into appointments set ?', appointment, function (err, result) {
if (err) {
console.error(err);
return res.send(err);
} else {
return res.send('Ok');
}
})});
app.get('/contact', function(req, res){
var query = connection.query('select * from appointments order by id desc limit 1;',function(err,rows){
if(err) {
consol.error(err);
return res.send(err);
} else {
console.log();
var transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: '...',
pass: '.....'
}
});
var mailOptions = {
from: '...',
to: '...',
subject: 'Detailing Appointment Request - ' + rows[0].name,
html: '<p><i>You have a new detailing appointment request. Please respond to this customer within 24 hours. </i></p><h2>Customer Information</h2><p><b>Name</b>: ' + rows[0].name + '</p> <p><b>Phone</b>: ' + rows[0].number + '</p> <p><b>Email</b>: ' + rows[0].email + '</p> <h2>Order Information</h2> <p><b>Request ID</b>: ' + rows[0].id + '</p> <p><b>Date/Time</b>: ' + rows[0].date + ' at ' + rows[0].time + '</p> <p><b>Service</b>: 1 ' + rows[0].vehicle_type + ', ' + rows[0].service + '</p> <p><b>Additional Services</b>: ' + rows[0].add_on + '</p>'
};
transporter.sendMail(mailOptions, function (error, info) {
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
return res.send(rows);
}
})});
&#13;
这是我的app.js文件的相关部分:
//Database connection
$scope.submit= function(){
console.log('clicked submit');
var appointment = {
name: $scope.name,
number : $scope.number,
email : $scope.email,
vehicle_type: $scope.generateModel.vehicleType,
service: $scope.generateModel.service,
add_on: $scope.generateModel.addOnService,
date: $scope.moment($scope.dt).format('MM/DD/YYYY'),
time: $scope.moment($scope.mytime).format('hh:mm A'),
}
$http({
url: 'http://chestnutdetailing.com/contact',
method: 'POST',
data: appointment
}).then(function() {
$scope.getAppointments();
})
};
$scope.getAppointments = function() {
$http({
url: 'http://chestnutdetailing.com/contact',
method: 'GET'
}).then(function(response) {
$scope.lastAppointment = response;
$scope.openAppointmentModal($scope.lastAppointment);
})
}
&#13;
答案 0 :(得分:0)
您的Web应用程序当前使用Apache Web服务器部署在共享主机上。您的NodeJS / Express服务器代码未被使用。为了使您按照预期的方式工作,您需要部署到将执行NodeJS代码的服务。我建议您通过本教程将您的应用发布到Google的云端。
http://labs.roitraining.com/labs/gcp-node-express-cloud-functions/index.html#0