【发布时间】:2019-05-17 17:20:00
【问题描述】:
我正在使用 app.post,当我想向 tweeter 发布推文时。 但是,当我使用 req.body.tweetMessage 时,我得到了推文值和“undifiend”。我只想要推文价值,而且我不断得到 body.tweetMessage:"推文的价值" body.tweetMessage:未定义 这是为什么?我该如何解决?
app.js
let express = require("express");
let bodyParser= require ("body-parser");
let app = express();
let path = require("path");
let Twitter = require('twitter');
let config = require('./config.js');
let twitter = new Twitter(config);
let username = "NaouriRavid";
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());
app.get('/',function(req,res){
res.sendfile("client.html");
});
app.get('/logo.png',function(req,res){
res.sendfile("logo.png");
});
// Post a tweet
app.post("/", function (req, res) {
if(req.body) {
let tweet = (req.body.tweetMessage); // Get the user's tweets value from client
**console.log("body.tweetMessage:"+req.body.tweetMessage);**
let params = {
status: tweet
}
twitter.post('statuses/update', params, function(err, data, res) {
if(!err){
let username = data.user.screen_name;
let tweetId = data.id_str;
console.log('your tweet have been posted! you can find it here:', `https://twitter.com/${username}/status/${tweetId}`);
} else {
console.log(err);
}
})
res.status(200).send("your tweet have been posted! you can find it here:" +" "+`https://twitter.com/${username}`);
}
else {
res.status(404).send({error: "There was a problem posting the tweet"})
}
});
app.listen(8081 ,function(){
console.log("Live at Port " + 8081);
});
client.html
<script>
document.getElementById("tweet").addEventListener("click", function()
{
let tweet = document.getElementById("tweetMessage").value;
let json = JSON.stringify({"tweetMessage": tweet});
var xhr = new XMLHttpRequest();
var url = 'http://localhost:8081';
if (tweet === '') {
alert("You must write something!");
return;
}
else {
xhr.open("POST", url, true); // true = asynchronous
xhr.setRequestHeader("Content-Type", "application/json; charset=UTF-8");
xhr.send(json);
}
});
</script>
【问题讨论】:
标签: javascript node.js express twitter