无法加载资源:服务器在部署项目后响应状态为404错误

时间:2018-02-23 23:45:44

标签: javascript node.js express nodemailer body-parser

我为我的好友建了一个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;
&#13;
&#13;

这是我的app.js文件的相关部分:

&#13;
&#13;
//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;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

您的Web应用程序当前使用Apache Web服务器部署在共享主机上。您的NodeJS / Express服务器代码未被使用。为了使您按照预期的方式工作,您需要部署到将执行NodeJS代码的服务。我建议您通过本教程将您的应用发布到Google的云端。

http://labs.roitraining.com/labs/gcp-node-express-cloud-functions/index.html#0