近日开发了一款图书小程序,构想有很多,在此请各位网友给些宝贵意见以及指导,比如功能,交互方面。
功能设定:
1.检索书籍,找到自己想看的书,然后可以查看相关信息。(阅读功能需要查阅相关规定以及接口或pdf处理以及版权问题)
2.通过书架记录书籍信息(已完成),个人藏书可以选定任意数量书籍分享为书单图片并转发出去用来比如给新人推荐相关入门书籍看,毕竟大佬的书单很有参考价值。(待完成)
3.可以通过个人已收录的书籍来找到用户表中与自己藏书类型,数量大致匹配的用户,从而达到寻找同道中人的功能。(待完成)
4.相关书籍加入书架后可以有一个求书功能,主要是添加一个订阅。只要有其他用户将实体书上架,可以提供相关的联系方式之类的功能来达到实体书的流动。
//下面是豆瓣的相关api,太久远忘记功能了
const request = require('request')
let total = 200
const dealBarcode = (barcode,reply,models,open_id,join)=>request(`https://api.douban.com/v2/book/isbn/:${barcode}?apikey=0df993c66c0c636e29ecbb5344252a4a`,((urlErr,urlRes)=>{
// request(`https://api.douban.com/v2/book/search?apikey=0df993c66c0c636e29ecbb5344252a4a&start=${Number.parseInt(Math.random()*1000%200)}&count=3&tag=${encodeURI('前端')}`,((urlErr,urlRes)=>{
// if(urlErr)throw urlErr
// else {
// console.log(JSON.parse(urlRes.body).books.map(item=>item.tags),'??')
// }
// }))
if(urlErr)throw urlErr
else {
// console.log(JSON.parse(urlRes.body))
let imgUrl = JSON.parse(urlRes.body).images.small
let obj = {...JSON.parse(urlRes.body),imgUrl,open_id,collected:!!join}
// console.log(obj)
if(obj.title==='Undefined'){
reply({
status:200,
error:'暂时找不到有关数据,已记录',
msg:'通过外部接口查询并存入数据库'
})
}else{
let model = new models.goods(obj);
console.log(model,'??')
if(!!join)model.save()
reply({
status:200,
data:obj,
msg:'通过外部接口查询并存入数据库'
})
}
}
}))
const dealBooks = (tags,count,reply,pageNo)=>request(`https://api.douban.com/v2/book/search?apikey=0df993c66c0c636e29ecbb5344252a4a&start=${(pageNo-1)*count}&count=${count}&tag=${encodeURI(tags)}`,(urlErr,urlRes)=>{
if(urlErr)throw urlErr
else {
let resBody = JSON.parse(urlRes.body);
total = resBody.total;
console.log(resBody.books,'???')
reply({
status:200,
total,
data:resBody.books,
msg:'通过外部接口查询并存入数据库'
})
}
})
const searchBooks = (q,count,reply,pageNo)=>request(`https://api.douban.com/v2/book/search?apikey=0df993c66c0c636e29ecbb5344252a4a&start=${(pageNo-1)*count}&count=${count}&q=${encodeURI(q)}`,(urlErr,urlRes)=>{
if(urlErr)throw urlErr
else {
let resBody = JSON.parse(urlRes.body);
total = resBody.total;
reply({
status:200,
total,
data:resBody.books,
msg:'通过外部接口查询并存入数据库'
})
}
})
module.exports = {
dealBarcode,
dealBooks,
searchBooks
}
小程序码在下方: