Nodejs 将数字连接成一个字符串
Nodejs concatenating numbers as a string
单击按钮时触发此函数
nextPage() {
this.tweets = []
this.$route.query.page += 1
this.getTweets()
},
它所做的是将推文数组重置为零,将现有查询(页面)递增 1 并调用 getTweets 函数
getTweets(newCurrent) {
this.tweets = []
const API_URL = `${this.$server}/api/twitter/tweets`
const params = {
token: getUserToken(),
// THIS IS WHERE I AM PASSING QUERY
page: this.$route.query.page,
newCurrentPage: newCurrent,
}
axios.post(API_URL, null, { params }).then(res => {
this.currentPage = res.data.page
this.numberOfPages = res.data.numberOfPages
res.data.tweets.forEach(tweet => {
const tweetData = {
id: tweet.id,
tweet_text: tweet.tweet_text,
twitter_name: tweet.twitter_name,
twitter_username: tweet.twitter_username,
added_at: moment(String(tweet.added_at)).format('MM/DD/YYYY hh:mm'),
}
this.tweets.push(tweetData)
})
})
}
最后在 nodejs 中。在这里我得到 typeof number 但 currentPage 仍然连接,如果我在第 20 页并单击下一步,currentPage 将为 201。如何避免这种情况?
var currentPage = parseInt(req.query.page)
console.log(typeof currentPage)
console.log(currentPage)
// check if there is newCurrentPage
if(newCurrentPage != undefined) {
skip = (newCurrentPage - 1) * pageSize
currentPage = newCurrentPage
} else {
// check if page is valid
if(currentPage < 1) {
currentPage = 1
} else if(currentPage > numberOfPages) {
currentPage = numberOfPages - 1
}
// offset
skip = (currentPage - 1) * pageSize
}
vue-router 中的查询参数始终被视为 string
。因为它可能是 page=1
就像它可能是 page=foo
,所以没有办法知道。
所以 ?page=1
将是 this.$route.query.page === "1"
要解决此问题,您必须先解析参数:
const newPage = parseInt(this.$route.query.page, 10) + 1
旁注,将新值分配给 $router.query.page
不起作用。您必须推送一条新路线才能更新:
const newPage = parseInt(this.$route.query.page, 10) + 1
this.$router.push({ query: newPage })
单击按钮时触发此函数
nextPage() {
this.tweets = []
this.$route.query.page += 1
this.getTweets()
},
它所做的是将推文数组重置为零,将现有查询(页面)递增 1 并调用 getTweets 函数
getTweets(newCurrent) {
this.tweets = []
const API_URL = `${this.$server}/api/twitter/tweets`
const params = {
token: getUserToken(),
// THIS IS WHERE I AM PASSING QUERY
page: this.$route.query.page,
newCurrentPage: newCurrent,
}
axios.post(API_URL, null, { params }).then(res => {
this.currentPage = res.data.page
this.numberOfPages = res.data.numberOfPages
res.data.tweets.forEach(tweet => {
const tweetData = {
id: tweet.id,
tweet_text: tweet.tweet_text,
twitter_name: tweet.twitter_name,
twitter_username: tweet.twitter_username,
added_at: moment(String(tweet.added_at)).format('MM/DD/YYYY hh:mm'),
}
this.tweets.push(tweetData)
})
})
}
最后在 nodejs 中。在这里我得到 typeof number 但 currentPage 仍然连接,如果我在第 20 页并单击下一步,currentPage 将为 201。如何避免这种情况?
var currentPage = parseInt(req.query.page)
console.log(typeof currentPage)
console.log(currentPage)
// check if there is newCurrentPage
if(newCurrentPage != undefined) {
skip = (newCurrentPage - 1) * pageSize
currentPage = newCurrentPage
} else {
// check if page is valid
if(currentPage < 1) {
currentPage = 1
} else if(currentPage > numberOfPages) {
currentPage = numberOfPages - 1
}
// offset
skip = (currentPage - 1) * pageSize
}
vue-router 中的查询参数始终被视为 string
。因为它可能是 page=1
就像它可能是 page=foo
,所以没有办法知道。
所以 ?page=1
将是 this.$route.query.page === "1"
要解决此问题,您必须先解析参数:
const newPage = parseInt(this.$route.query.page, 10) + 1
旁注,将新值分配给 $router.query.page
不起作用。您必须推送一条新路线才能更新:
const newPage = parseInt(this.$route.query.page, 10) + 1
this.$router.push({ query: newPage })