javascript - 404 未找到 Node

标签 javascript node.js httpserver

嗨,我已经使用这个 Node 服务器有一段时间了,它最近停止工作(可能是由于我错误地调整了一些逻辑错误),当我运行服务器时抛出 404。当我使用 http 请求调用它时,它也会抛出 404 错误,并在浏览器中从实际 URL 加载时显示相同的内容。这是怎么回事?

enter image description here

en[![enter image description here这里有图像描述] 3 ] 3

index.js:

//Environment Vars
var uri = process.env.NODE_ENV || "development"
console.log(uri + " environment")

//Express App
var express = require('express');
var app = express();

//Api for reading http post request body in express
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json())

//Log Connections
app.use(function timeLog (req, res, next) {
  console.log('incoming connection . . . ')
  console.log(req)
  next()
})

//API middelware
var api = require('./api')
app.use('/api', api)

app.get('/', function (req, res) {
  res.status(200).send(JSON.stringify({ message: 'Welcome!', success: true, error: null }));
}); 

//Create Server
var port = process.env.PORT || 1337;
var httpServer = require('http').createServer(app);
httpServer.listen(port, function () {
  console.log('Server running on port ' + port + '.');
});

api.js

var express = require('express')
var router = express.Router()

var stripe_key = process.env.STRIPE_KEY || "sk_test_P9XQtrrfGYU9mF8h6C47bgUp"
var stripe = require('stripe')(stripe_key);
var request = require("request-promise-native")

//API
router.get('/', function (req, res) {
  res.status(200).send(JSON.stringify({ message: 'API Gateway', success: true, error: null }));
}) // Just for testing, just for error-handling

//1. Create a customer account
router.post('/new_customer', function (req, res) {
  console.log("Creating new customer account...")
  var body = req.body

  stripe.customers.create({ email: body.email, })
    .then((customer) => {
      console.log(customer)
      // Send customerId -> Save this on Firebase for later use
      res.status(200).send(JSON.stringify({ success: true, error: null, customerId: customer.id }));
    })
    .catch((err) => {  
      console.log(err)
      res.status(400).send(JSON.stringify({ success: false, error: err }))
    });
})

//2. Save Credit Card with token
router.post('/new_card', function (req, res) {
  var customerId = req.body.customerId
  var token = req.body.token

  stripe.customers.update(customerId, { source: token })
    .then((customer) => {
      console.log(customer)
      res.status(200).send(JSON.stringify({ success: true, error: null }));
    })
    .catch((err) => {  
      console.log(err)
      res.status(400).send(JSON.stringify({ success: false, error: err }))
    });

})

//3. Use customerId to post a charge
router.post('/new_charge', function (req, res) {
  var customerId = req.body.customerId
  var amount = req.body.amount
  var source = req.body.source
  stripe.charges.create({
    amount: amount,           //in cents
    currency: "usd",
    customer: customerId,      //CUSTOMER_STRIPE_ACCOUNT_ID
    source: source, // obtained with Stripe.js
  }).then((charge) => {
    res.status(200).send(JSON.stringify({ message: 'Sucess.', success: true, error: null }));
  }).catch((error) =>{
    res.status(400).send(JSON.stringify({ message: 'Error', success: false, error: error }));
  })
})


router.post('/ephemeral_keys', (req, res) => {
  const stripe_version = req.body.api_version;
  var customerId = req.body.customerId;

  if (!stripe_version) {
    res.status(400).end();
    return;
  }
  console.log(stripe_version)
  // This function assumes that some previous middleware has determined the
  // correct customerId for the session and saved it on the request object.
  stripe.ephemeralKeys.create(
    {customer: customerId},
    {stripe_version: stripe_version}
  ).then((key) => {

    console.log("Ephemeral key: " + key)
    res.status(200).json(key);
    res.status(200).send(JSON.stringify({ message: 'AAAAhh', success: true, error: null }));
  }).catch((err) => {
    console.log("Ephemeral key error: " + err)
    res.status(200).send(JSON.stringify({ message: 'ABBBBBB', success: true, error: null }));
    res.status(500).end();
  });
});

module.exports = router;

其他详细信息:

两个重要文件:index.js 和 api.js,但功能全部在 api.js 中,这就是为什么 URL 词干会这样:.../api/...

最佳答案

好的,问题解决了,而且它很愚蠢。您确定启动了正确的服务器吗?它绝对不是 Node 服务器。它是您启动的 http 服务器。要通过 Node 启动服务器,您需要进入目录(在终端中)并写入“node index.js”。启动http服务器所需的代码写在index.js中。

从下面的屏幕截图中得到这一点。

enter image description here

关于javascript - 404 未找到 Node ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49257412/

相关文章:

javascript - 为什么 node.js 是异步的?

linux - Node.js - 找不到已安装模块的命令

javascript - 如何有条件地更新 React 中集合中项目的属性?

javascript - 检查 JavaScript 中值的真实性的最简单方法?

node.js - 如何检查 node.js 事件队列?

带有 httpServer 的 Java 应用程序在退出前挂起 45 秒

node.js - 从 node.js 的 http.IncomingMessage 获取请求正文

javascript - 将 React 组件与另一个组件包装在同一文件中

javascript - jQuery .next 无法运行

node.js - socket.io 示例 : not working