node.js在啥工具上有提示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node.js在啥工具上有提示相关的知识,希望对你有一定的参考价值。

开发工具
1.WebStorm,毫无疑问非他莫属,跨平台,强大的代码提示,支持Nodejs调试,此外还支持vi编辑模式,这点我很喜欢。
2.做些小型项目用Sublime Text。
3.Browserify:将你的nodejs模块应用到浏览器中
4.nvm:nodejs版本管理工具,你可能会用到多个nodejs版本(如v0.11.x支持generator的nodejs和stable的v0.10.x版本),用它可以方便切换

测试&自动化
1.mocha:一个简单、灵活有趣的 javascript 测试框架(类似的还有should,supretest)
2.gruntjs:迄今为止node世界中最流行的构建工具
3.gulp.js:宣称取代gruntjs的东东
4.node-inspector:nodejs代码调试神奇,结合浏览器Chrome-Debug,轻量,方便
5.node-dev:代码改了,还在不断的按Ctrl+C吗?快试试这个工具吧,使用fs.watch()监控项目目录,代码变化后,自动重启项目
6.pm2:替代node-forever的新秀

第三方开发包
1.Edge.js:让.NET和nodejs在同一进程中运行,相互调用(神器的东西啊)
2.Express,优秀的Web开发框架
3.moment,强大的日期处理库
4.cheerio,jQuery核心选择器的实现,可跑在server端,类似jsdom,但比jsdom轻量很多
5.async,异步处理
6.shortid,url友好的unique id
7.log4js,日志记录,稳健的系统离不开日志记录
8.colors,便于在console中输出不同颜色的文本(tinycolor,更轻量级的控制台颜色设置)
9.xmlrpc,方便xml远程过程调用,比如写metaweblog的时候可能会用到
10.commander:编写命令行应用必备,简化各种命令解析操作
11.koa:Express的接班人
12.chokidar:完善的文件、文件夹监控包,解决了fs.watch诸多不完善的地方,可以进行子目录的监控,相当方便
13.axon:消息、常见socket模式的上层实现,简化socket开发,TJ大神作品
14.cron:采用crontab语法的任务计划包
15.open:使用本地应用打开文件或者url
16.term-list:cli辅助选择操作
17.deepmerge: js对象深度合并
18.loadsh,underscore:js常用工具库,对象合并,排序算法,map,reduce等
19.iconv-lite:纯js实现的编码转换库,开发爬虫等场景会经常用到。
20.request: 更简单的发送http请求
21.needle:轻量级的http client模块,集成了iconv-lite,跟request类似
22.superagent:类似request,使用风格跟jQuery神似。
23.mobile-agent: 判断是手机浏览器的访问还是pc端的访问,对做web很有用哦。
24.is-type-of:js辅助库,判断对象的类型

Web框架&工具
1.StrongLoop
2.KeystoneJS
3.CompoundJS
3.Geddy
参考技术A 使用WebStorm吧。

为啥我在 Node.js 上有 NaN?

【中文标题】为啥我在 Node.js 上有 NaN?【英文标题】:Why I have NaN on Node.js?为什么我在 Node.js 上有 NaN? 【发布时间】:2020-02-20 07:24:43 【问题描述】:

我现在正在制作公告板。上面是它的模板代码,其中页面函数有NaN。出现此错误的原因是什么,我应该如何解决?

下面的代码是用node.js编写的。

module.exports = 
    HTML:function(title, board, control, page)
      return `
      <!DOCTYPE html>
      <html>
          <head>
            <title>$title</title>
            <meta charset="utf-8">
            <style type="text/css">
        ul.board, ol.board 
            list-style: none;
            margin: 0px;
            padding: 5px;
        
        form 
          display: inline;
        
        table.type09 
          border-collapse: separate;
          text-align: left;
          line-height: 2;
      
      
      table.type09 thead th 
          padding: 10px;
          font-weight: bold;
          vertical-align: top;
          color: #369;
          border-bottom: 3px solid #003699;
      
      table.type09 tbody th 
          width: 150px;
          padding: 10px;
          font-weight: bold;
          vertical-align: top;
          border-bottom: 1px solid #ccc;
          background: #f3f6f7;
      
      table.type09 td 
          width: 350px;
          padding: 10px;
          vertical-align: top;
          border-bottom: 1px solid #ccc;
      
        </style>
          </head>
          <body>
              <div id="board">
              <table class="type09">
                      <thead>
                        <tr>
                          <th>제목</th>
                          <th>작성자</th>
                          <th>날짜</th>
                          <th>조회수</th>
                        </tr>
                      </thead>
                      <tbody>
                        $board
                      </tbody>
                  </table>
                  $control
              </div>
                $page
          </body>
      </html>`;
    ,board: function (lifeboards) 
    var board = ``;
    for (i = 0; i < lifeboards.length; i++) 
      var article = lifeboards[i];
      var titleBold = article.titleBold;
      board += `<tr>`;
      if(titleBold == "1") 
        board += `<td><a href="/?id=$article.id"> <b><공지>$article.title</b> </a></td>`;
        board += `<td>$article.writer</td>`;
        board += `<td>$article.day</td>`;
        board += `<td>$article.see</td>`;
        board += `</tr>`;
      
    
    for (i = 0; i < lifeboards.length; i++) 
        var article = lifeboards[i];
        var titleBold = article.titleBold;
        board += `<tr>`;
        if(titleBold == "1") 
          board += `<td><a href="/?id=$article.id"> $i+1. <b>$article.title</b> </a></td>`;
         else if(titleBold == "0") 
          board += `<td><a href="/?id=$article.id" style="text-decoration:none">$i+1. $article.title</a></td>`;
        
        board += `<td>$article.writer</td>`;
        board += `<td>$article.day</td>`;
        board += `<td>$article.see</td>`;
        board += `</tr>`;
    
    return board;
  ,page:function (lifeboards) 
    var page = ``;
      page =+ `<tr>`;
      page =+ `<td colspan="5">`;
      for(j = 0; j < lifeboards.length/5; j++) 
        page =+ `<a href="/?page=$j+1">[$j+1]</a>`;
      
      page =+ `</td>`;
      page =+ `</tr>`;
    return page;
     

下图展示了它的工作原理。

我不知道 *** 还需要多少细节,但这是我的全部代码,没有什么要解释的了。

【问题讨论】:

【参考方案1】:

请使用这个,你需要先添加concat ( + )运算符然后=。例如+=

 page: function (lifeboards) 
    var page = ``;
    page += `<tr>`;
    page += `<td colspan="5">`;
    for (j = 0; j < lifeboards.length / 5; j++) 
        page += `<a href="/?page=$j + 1">[$j + 1]</a>`;
    
    page +=  `</td>`;
    page += `</tr>`;
    return page;

希望这能解决问题。

【讨论】:

以上是关于node.js在啥工具上有提示的主要内容,如果未能解决你的问题,请参考以下文章

Discord API node.js 悬停工具提示

Windows下完全卸载node.js并安装node.js的多版本管理工具nvm-windows

为啥我在 Node.js 上有 NaN?

node.js应用可以打包成android程序吗

VS轻松开发Node.js应用

如何安装node.js支持插件