【问题标题】:Going from ASP.NET Web API to Node.js with Express使用 Express 从 ASP.NET Web API 到 Node.js
【发布时间】:2018-11-08 10:57:13
【问题描述】:

我的任务是探索 node.js 作为 ASP.NET Web API 的替代方案,以提供 RESTful API。

我已经开发 ASP.NET Web API 有一段时间了,并且已经习惯了在该框架中拥有某些东西,我想知道其他人在 node.js 路线上为这些事情做了什么:-

  1. 什么 ORM 用于 MS SQL 而不是实体框架
  2. 是否有一种处理路由的好方法,类似于您在使用路由模板的 Web API 中获得的方法(routeTemplate:“api/{controller}/{id}”)
    • 到目前为止,我一直在使用 Express,但还没有找到一种方法在“顶级”应用这样的东西,这样我就可以拥有单独的控制器...

到此为止,我敢肯定还有很多很多问题要问,但如果有人可以帮助解决这些问题,这些是我最关心的问题?

【问题讨论】:

    标签: node.js express


    【解决方案1】:
    1. 对于 ORM,使用最多的 2 个库是 knexjs 和 sequelize,但是,我更喜欢 knex。
    2. 对于映射部分,据我所知,没有办法像在 c# 中那样做。通常我所做的是,在 app.js 中加载一个带有我的路由索引的文件。这是一个例子,

    在你的 app.js 中

    app.use('/', require('./backend/routes/index'))
    

    然后,在您的路线/索引中

    import express from 'express'
    
    const router = express.Router()
    
    // GET /
    router.get('/', function (req, res) {
    
    })
    
    // GET /countries
    router.get('/countries', (req, res, next) => {
    
    })
    
    // POST /subscribe
    router.post('/subscribe', checkAuth, generalBodyValidation, (req, res, next) => {
    
    })
    
    // All routes to /admin are being solved in the backend/routes/admin/index file
    router.use('/admin', require('./backend/routes/admin/index'))
    
    module.exports = router
    

    您的管理/索引文件可以是 从“快递”导入快递

    const router = express.Router()
    
    // POST /admin/login
    router.post('/login', (req, res, next) => {
    
    })
    
    module.exports = router
    

    这样,您将能够为您的路线提供更好的结构。

    希望这能问到你的问题,如果它确实将我的答案标记为正确,如果不是,请告诉我你不明白的地方:D

    【讨论】:

    • 内容丰富的答案,非常感谢!只是想知道,你有使用 TypeORM 的经验吗?
    • 不幸的是,我没有。我从未使用过 typescript,但如果你愿意使用它似乎是一个不错的库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多