iT邦幫忙

0

請問一下node串接的問題,,做好了結果要串時為空值?

  • 分享至 

  • xImage

各位大大好
我想請問一下
我用XAMPP然後用node.jsnode.js寫後端
網址為http://localhost:3000/getposts
值為:

[
{
id: 1,
title: "Update Title",
body: "Hi KOBE"
},
{
id: 3,
title: "NBA",
body: "kahwai"
},
{
id: 4,
title: "NBA",
body: "Russell"
},
{
id: 5,
title: "Post One",
body: "This is post number one"
},
{
id: 6,
title: "Post One",
body: "This is post number one"
}
]

然後我用codepen的Vue串接測試結果出來是空值是因為 RowDataPacket嗎?
因為node.js MYSQl會有這個RowDataPacket,請各位大大教我該怎麼做QQ拜託

codepen:
https://codepen.io/ted820525/pen/wvavJvm?editors=1011

nodeode程式碼如下

const express = require('express');
const db = require('./comnetdb/get.js').MySQLConnector();
const app = express();


//Creat DB
app.get('/createdb', (req, res) => {
    let sql = 'CREATE DATABASE foodbata';
    //注意DB的語法__如剛剛所輸入的錯誤或是空格
    db.query(sql,(err, result) => {
        if(err) throw err;
        console.log(result);
        res.send('Database created...');
    });
});

//Create table

app.get('/createpoststable',(req,res) => {
    let sql = 'CREATE TABLE posts(id int AUTO_INCREMENT, title VARCHAR(255), body VARCHAR(255), PRIMARY KEY(id))';
    //'CREATE TABLE posts(id int AUTO_INCREMENT, title VARCHAR(255), body VARCHAR(255) PRIMARY KEY id)'; --錯誤SQL程式碼
    db.query(sql, (err,result) => {
        if(err) throw err;
        console.log(result);
        res.send(result);

    });

});

//Insert post 1

app.get('/addpost1', (req,res) => {
    let post = {title:'Post One', body:'This is post number one'};
    let sql = 'INSERT INTO posts SET ?';
    let query = db.query(sql, post, (err ,result) => {
        if(err) throw err;
        console.log(JSON.stringify.result);
        res.send(result);

    });

});


//Insert post 2
app.get('/addpost2', (req,res) => {
    let post = {title:'NBA', body:'Russell'};
    let sql = 'INSERT INTO posts SET ?';
    let query = db.query(sql, post, (err ,result) => {
        if(err) throw err;
        console.log(result);
        res.send('Posts 2 added...');

    });

});

//Select posts

// app.get('/getposts', (req,res) => {
//     let sql = 'SELECT * FROM `posts`';
//     let query = db.query(sql, (err ,result) => {
//         if(err) throw err;
//         console.log(result);
//         res.send('Posts 2 fetched...');
//     });
// });

//Select single post
app.get('/getposts', (req,res) => {
    let sql = `SELECT * FROM posts `;
    let query = db.query(sql, (err ,result) => {
        if(err) throw err;
        console.log(result);
        res.send(result);
    });
});

//Update post
//更改title
app.get('/updatposts/:id', (req,res) => {
    let newTitle = 'Hi KOBE';
    let sql = `UPDATE posts SET body = '${newTitle}' WHERE id = ${req.params.id}`;
    let query = db.query(sql, (err ,result) => {
        if(err) throw err;
        console.log(result);
        res.send('Post update...');
    });
});


//Delete post
//delete post 2
app.get('/deleteposts/:id', (req,res) => {
    let newTitle = 'Hi KOBE';
    let sql = `DELETE FROM posts WHERE id = ${req.params.id}`;
    let query = db.query(sql, (err ,result) => {
        if(err) throw err;
        console.log(result);
        res.send('Post delete...');
    });
});

app.listen('3000', () => {
    console.log('Server started on port 3000');

});



誤會你了
試試
var string=JSON.stringify(result);
var data = JSON.parse(string)
fillano iT邦超人 1 級 ‧ 2020-02-06 16:09:28 檢舉
通常做api,我會先用postman來測試,之後才會用前端來接。
用 codepen 測試 fetch 會有 CORS 的問題,應該沒辦法測試,至少我是還沒找到解決的辦法 ...
用 postman 試吧
一定要線上試就用 https://repl.it/languages/nodejs
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
阿展展展
iT邦好手 1 級 ‧ 2020-02-07 05:20:21

postman-教學-測試post與get的工具

Postman是一個可以測試自己架設網站POST與GET功能的工具。

我要發表回答

立即登入回答