目前来说,使用Nodejs比较好的工具组合是什么

目前来说,使用Nodejs比较好的工具组合是什么

我是看到了这个https://github.com/erealm/HomeSite

里面分享了他们使用到的一些工具

· Setup the web site base on Node.js and Express. · Using Bower to manage front-end library. · Using Grunt to integrate the web site: compress and merge code, compress image, check code quality using jsLint. · Using AngularJS to control front-end code structure. · Using Bootstrap to setup UI. · Using winston as Logger · Using Nodemailer to send the mail. · Using handlebars as the server template engine. · Integrate with MongoDB.

我想问下,如果我的网站是Node.js + Express + MongoDB的。 那么

  1. 是不是使用AngularJS会开发效率更高,维护成本更低?
  2. 好像NPM更新了可以管理jquery等前端库了。是不是Bower不需要了?
  3. Grunt是不是一定要用?
  4. 测试的框架哪个比较好?

7 回复

当然,我们可以逐一解答这些问题,并提供一些示例代码。

1. 使用AngularJS会开发效率更高,维护成本更低?

AngularJS是一个非常强大的前端框架,适合大型单页应用(SPA)的开发。它提供了数据绑定、依赖注入等功能,能够显著提高开发效率。然而,如果你的项目规模较小,或者你更倾向于现代框架如React或Vue,那么可能需要权衡一下是否真的需要AngularJS。

示例代码:

// AngularJS 示例
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.message = "Hello, World!";
});

2. NPM更新了可以管理jQuery等前端库了。是不是Bower不需要了?

NPM确实可以管理前端库,包括jQuery。但是,对于一些特定的库,Bower仍然有它的优势,比如它更适合处理静态文件的管理。不过,随着NPM功能的增强,越来越多的开发者选择使用NPM来管理所有类型的包。

示例代码:

# 使用npm安装jQuery
npm install jquery --save

3. Grunt是不是一定要用?

Grunt是一个任务运行器,用于自动化各种开发任务,如压缩代码、合并文件等。虽然Grunt很强大,但也有其他替代方案,如Gulp。你可以根据自己的需求选择合适的工具。

示例代码:

// Gruntfile.js 示例
module.exports = function(grunt) {
    grunt.initConfig({
        uglify: {
            options: {
                banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
            },
            build: {
                src: 'src/<%= pkg.name %>.js',
                dest: 'build/<%= pkg.name %>.min.js'
            }
        }
    });
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.registerTask('default', ['uglify']);
};

4. 测试的框架哪个比较好?

Node.js生态系统中有多个优秀的测试框架,如Mocha、Jest和Chai。Mocha以其灵活性和广泛的支持而著称,Jest则因其内置的Mocking和Snapshot Testing而受到欢迎。

示例代码:

// Mocha 示例
const assert = require('assert');

describe('Array', function() {
    describe('#indexOf()', function () {
        it('should return -1 when the value is not present', function () {
            assert.equal([1,2,3].indexOf(4), -1);
        });
    });
});

总结

根据你的需求和项目规模,你可以选择不同的工具组合。例如,如果你希望使用现代的前端框架,可以考虑React或Vue;如果你更喜欢静态文件管理,可以选择Bower;如果你希望简化任务运行,可以选择Gulp而不是Grunt。至于测试框架,Mocha和Jest都是不错的选择。


1.不一定,得看你的具体业务 但angular是个好东西,在很多SPA场景很好用,个人感觉UI交互特别复杂,且不是以数据为主的应用不太适用angular 2.npm加入前端库以后你可以理解成他完成了部分bower的功能,bower用了也不多,不用也行 直接用npm 3.node不是c/c++ 编译复杂 对执行流程有严格要求 所以这种自动化工具 用不用都行,但推荐用, 能节省一些不必要的时间和精力 就节省把 选择很多 make grunt gulp 见仁见智 4.同上 见仁见智 如果你用angular 好像推荐 Jasmine+Karma这个组合的多一点 总结 这些工具都是为了方便我们的开发 所以最好是用我们熟悉的 或者你觉得学起来比较容易的 对于你来说比较习惯的 就是最合适的

并行计算,全跪

是不是使用AngularJS会开发效率更高,维护成本更低?

  • 不会,开发效率高,维护成本也高

好像NPM更新了可以管理jquery等前端库了。是不是Bower不需要了?

  • npm和bower就不是一样的东西,前端的还是建议用bower

Grunt是不是一定要用?

  • 一定要有作业管理的,不一定用grunt,其实用gulp更好

测试的框架哪个比较好?

单元测试需要的各个模块说明

  • mocha(Mocha is a feature-rich JavaScript test framework running on node.js and the browser, making asynchronous testing simple and fun.)
  • chai(Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework.)
  • sinon(Standalone test spies, stubs and mocks for JavaScript.)
  • zombie (页面事件模拟Zombie.js is a lightweight framework for testing client-side JavaScript code in a simulated environment. No browser required.)
  • supertest(接口测试 Super-agent driven library for testing node.js HTTP servers using a fluent API)

为啥没人提到co+koa,我觉得比express好:)

快让FIS普及吧,发现很好用!

根据你的需求,我们可以针对每个问题进行详细解答:

  1. 是否使用AngularJS会开发效率更高,维护成本更低?

    • 使用AngularJS可以提高开发效率,尤其是在大型应用中,因为它提供了强大的数据绑定、模块化结构和依赖注入等功能。但是,AngularJS学习曲线较陡,对于小型项目可能显得过于复杂。如果你的团队已经熟悉React或Vue.js,那么可以选择这些更现代的前端框架。

    示例代码(AngularJS):

    angular.module('myApp', [])
      .controller('myCtrl', function($scope) {
        $scope.message = "Hello World";
      });
    
  2. NPM更新了可以管理jQuery等前端库了。是不是Bower不需要了?

    • 是的,随着npm版本的更新,它现在能够很好地处理前端库的管理。因此,你可以直接使用npm来安装jQuery,而不是使用Bower。

    示例代码:

    npm install jquery --save
    
  3. Grunt是不是一定要用?

    • Grunt是一个非常强大的构建工具,但并不是必须使用的。如果你的项目需求较为简单,可以直接使用更轻量级的构建工具,如Webpack或Gulp。如果需要自动化任务(压缩代码、检查代码质量等),Grunt仍然是一个不错的选择。

    示例代码(Gulp):

    const gulp = require('gulp');
    const uglify = require('gulp-uglify');
    
    gulp.task('compress', function() {
      return gulp.src('src/js/*.js')
        .pipe(uglify())
        .pipe(gulp.dest('dist/js'));
    });
    
  4. 测试的框架哪个比较好?

    • 对于Node.js后端测试,Mocha和Jest都是非常流行的测试框架。它们都支持异步测试,并且拥有丰富的断言库。另外,Chai作为断言库与Mocha搭配使用非常常见。

    示例代码(Mocha + Chai):

    const chai = require('chai');
    const expect = chai.expect;
    
    describe('Example Test Suite', () => {
      it('should pass', () => {
        expect(true).to.be.true;
      });
    });
    

总结:对于Node.js + Express + MongoDB的项目,选择合适的工具组合可以根据具体需求和团队熟悉度来决定。上述建议可以根据实际情况调整。

回到顶部