博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20190226杂七杂八
阅读量:6228 次
发布时间:2019-06-21

本文共 3568 字,大约阅读时间需要 11 分钟。

内容区向上滚动时如何让它不遮盖网页头部

我们知道我们可以通过position:fixed来实现网页头部和两侧不随滚动条滚动而滚动,但是我们想要实现的滚动效果是内容区滚动时好像是从头部下面滚上去的,头部没有被遮挡。解决方法就是对头部区域设置z-index属性,该值用来设置堆叠规则。

Unhandled rejection CastError: Cast to ObjectId failed for value "articleList" at path "_id" for model "Note"

这个错误是我使用axios访问后台api时产生的,如下,articlelist是url中的

app.get('/v1/note/articleList', Note.getList)复制代码

后来我直接修改了后台api,将上面的url缩短了就问题就没出现了

app.get('/article', Note.getList)复制代码

箭头函数返回对象字面量时不用使用大括号

若要使用单行箭头函数直接返回一个对象字面量,请使用一个括号包裹改对象字面量,而不是直接使用大括号,否则ES6解析引擎会将其解析为一个多行箭头函数

const ids = [1, 2, 3];       const users = ids.map((id,index) => ({
index:index, content: id})) console.log(users) //[{index: 0,content:1},{index: 1,content:2},{index: 2,content:3}]复制代码

利用axios与expres后台传递数据的方式

  1. 通过req.body(post请求) req.body可能有多种格式,具体由Content-Type决定,而且req.body```位于请求报文的请求实体.解析 body 不是 nodejs 默认提供的,你需要载入 body-parser 中间件才可以使用 req.body

    //前台 axios.post('/users/login', { user, pwd }).then().catch() //后台 router.post('/login',(req,res,next)=>{ /*  const {user,pwd} = req.body;*/    const user = req.body.user;    const pwd = req.body.pwd;    })复制代码
  2. 通过req.query(get请求) req.query位于请求报文的第一行,它是来获取url中的参数的

    //前端,在axios配置params参数使得url中带上了page,pagesize和title三个参数,后台就可以通过req.query获取axios.get('http://localhost:3000/article',{
    params:{page,pageSize,title}}) .then().catch()//后端getList=(req,res,next)=>{ //注意不是通过req.params获取, const {page,pageSize=10,title}=req.query;}复制代码
  3. 通过req.params nodejs默认提供,无需载入其他中间件。例如,如果你有route/user/:name,那么“name”属性可作为req.params.namereq.params包含路由参数(在URL的路径部分),而req.query包含URL的查询参数(在URL的?后的参数).

    // GET /user/tjreq.params.name// => "tj"复制代码

    TypeError: res.json is not a function

    这个错误可以说是一个经常见的错误了,出现的原因就是代码中标识符res有重复的,一般出现的地方是一个(res)签名下又有一个(res)签名,两个函数嵌套关系,比如我遇到这个问题时的错误代码是

    Note.find({},function(err,res){        if(err) return res.json({
    status:1,message:'请求失败'}); let all=res.length; Note.find().sort({
    "date":-1}).skip(((parseInt(page))-1)*parseInt(limit)).limit(parseInt(limit)).exec(function(err,docs){ if(err){ console.log(err); return res.json({
    status:1,message:'请求失败'}); } /*console.log(docs)*/ return res.json({ status:0, message:'请求成功', total:all, list:docs }) })})复制代码

    把上面外层的res改成ress即可解决问题

    Note.find({},function(err,ress){        if(err) return res.json({
    status:1,message:'请求失败'}); let all=ress.length; Note.find().sort({
    "date":-1}).skip(((parseInt(page))-1)*parseInt(limit)).limit(parseInt(limit)).exec(function(err,docs){ if(err){ console.log(err); return res.json({
    status:1,message:'请求失败'}); } /*console.log(docs)*/ return res.json({ status:0, message:'请求成功', total:all, list:docs }) })})复制代码

    我不知道的React.Fragment

    Fragments的比div的好处就是它可以让你聚合一个子元素列表,并且不在DOM中增加额外节点,<></> 是 <React.Fragment/> 的语法糖。

render() {  return (    <>      
);}复制代码

这个优点对于我们写组件有很大的帮助,比如本来我们写的是

class Columns extends React.Component {  render() {    return (      
Hello World
); }}class Table extends React.Component { render() { return (
); }}复制代码

那么上面的Table组件最后的输出如下,这显然会出错

Hello World
复制代码

这时Framents会帮助我们解决这个问题

class Columns extends React.Component {  render() {    return (      <>        Hello        World          );  }}复制代码

转载地址:http://vtina.baihongyu.com/

你可能感兴趣的文章
[原]Windows Azure开发之Linux虚拟机
查看>>
[转]MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
查看>>
SqlServer查询中使用事务
查看>>
ipv6相关
查看>>
粒子加到骨骼中
查看>>
VS2010几款超赞的扩展辅助工具总结
查看>>
Tomcat embed
查看>>
Asp.Net Web API 2第六课——Web API路由和动作选择
查看>>
如何使用seajs+jQuery构建中型项目
查看>>
js html5推送 实例
查看>>
ASP.NET div信息提示框显示几秒后隐藏
查看>>
常用的正则表达式C#工具类
查看>>
IOS适配
查看>>
WhyDX9:翻写D3D红龙书中的程序
查看>>
RFC 4627 JSON
查看>>
UML类图
查看>>
Flex父子窗体相互调用
查看>>
AP_应付模组在月结的处理
查看>>
javascript如何判断访问网页的设备及是否支持触屏功能
查看>>
MFC 虚函数与消息映射区别
查看>>