最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

无法发布 apidogs

运维笔记admin9浏览0评论

无法发布/ api / dogs

无法发布/ api / dogs

我在nodejs中创建了一个基本项目,但是当我提交数据时,它说不能发布api / dogs。 .html用于现场测试这是我的index.html

            <h1>Dogs</h1>
            <h2>Add a Dog</h2>
            <form action="/api/dogs" method="POST">
                    <label for="name">Enter Dog Name: </label>
                    <input type="text" id="name" name="name" autofocus />
                    <br/>
                    <label for="description">Enter Dog Description </label>
                    <textarea type="description" id="description" name="description" >
                    </textarea>
                    <input type="submit" value="Submit" />

创建一个名为data的新文件夹,并在此文件夹内创建一个名为connection.js的文件。该文件将导出数据库连接池。

exports.connectionPool = mysql.createPool({
connectionLimit:10,
host : 'localhost',
user : 'root',
password : 'root',
database : 'a1',
multipleStatements: true
});

在名为setup.js的数据中创建另一个文件。我们将使用此文件在数据库中设置所需的表。实际上,我们的数据库将仅包含一个表。

const {
    connectionPool
} = require('./connection.js'); // requires a file in current directory

connectionPool.query('DROP TABLE IF EXISTS dogs;', (error, results) => {
    if (error) {
        console.log(error.message);
        process.exit();
    } else {
        console.log("Success: dog table dropped!");
    }
});

var createSql = "CREATE TABLE dogs (dog_id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, description TEXT NOT NULL, PRIMARY KEY (dog_id) );";
connectionPool.query(createSql, (error, results) => {
    if (error) {
        console.log(error.message);
        process.exit();
    } else {
        console.log("Success: dog table Created!");
    }
});

这是index.js代码

const {
  connectionPool
} = require('./data/connection.js');

var express = require('express');
var app = express();
var bodyParser = require('body-parser');

// Create application/x-www-form-urlencoded parser
var urlencodedParser = bodyParser.urlencoded({
      extended: true
  })

  app.use(express.static('public'));
app.get('/', function (req, res) {
  res.sendFile(__dirname + "/" + "index.html");
})

app.post('/api/dogs', urlencodedParser, function (req, res) {
  // Prepare output in JSON format

  connectionPool.query("INSERT INTO dogs (name, description) VALUES ('" + req.body.name + "', '" + req.body.description + "');", (error, results) => {
      if (error) {
          console.log(error.message);
          process.exit();
      } else {
          console.log("Success: dog inserted");
      }
  });
  res.end(JSON.stringify(req.body));
})

app.get('/api/dogs', function (req, res) {
  connectionPool.query("SELECT * FROM dogs LIMIT " + req.query.offset + ", " + req.query.count, (error, results) => {
      if (error) {
          console.log(error.message);
          process.exit();
      } else {
          if (results === undefined || results.length == 0) {
              res.status(404).send("nothing found");
          } else {
              console.log(results);
              res.end(JSON.stringify(results));
          }
      }
  });
})

app.get('/api/dogs/id', function (req, res) {
  connectionPool.query("SELECT * FROM dogs where dog_id='" + req.query.id + "'", (error, results) => {
      if (error) {
          console.log(error.message);
          process.exit();
      } else {
          console.log(results);
          res.end(JSON.stringify(results));
      }
  });
})
var server = app.listen(8081, function () {
      var host = server.address().address
          var port = server.address().port

          console.log("Example app listening at http://%s:%s", host, port)
  })


[1]: .html
回答如下:

您的表单操作不完整,您必须调用绝对URL才能达到后弯,

<form action="http://localhost:8081/api/dogs" method="POST">

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论