2015-01-12 36 views
9

Có ai đang sử dụng TypeScript với Sails không? Nếu vậy, bạn đang sử dụng gì cho các khai báo bên ngoài?Sử dụng TypeScript với Sails

Tôi đang ở giữa dự án ứng dụng Sails và đã tìm hiểu về TypeScript. Tôi đang cố gắng để xác định xem TypeScript là cái gì tôi nên theo đuổi cho dự án này. Mọi thông tin sẽ được đánh giá cao. Cảm ơn.

Trả lời

6

từ: https://github.com/balderdashy/sails Cánh buồm được xây dựng với nodeconnectexpresssocket.io. Điều này có nghĩa là các tệp định nghĩa cho các thư viện này là những gì bạn cần. Tất cả những điều này có sẵn từ kho lưu trữ định nghĩa Definitive TypeScript: https://github.com/borisyankov/DefinitelyTyped.

+0

Dưới sự chỉ dẫn của bạn tôi đã kiểm tra ra các gói đề cập. nút, express và socket.io thực sự nằm trong kho lưu trữ DefinitelyTyped. Tuy nhiên, kết nối thì không. Về đọc thêm tôi thấy rằng kết nối thực sự là một loạt các mô-đun phần mềm trung gian, một số trong đó cũng có trong kho lưu trữ DefinitelyTyped nhưng một số thì không. Cảm ơn bạn đã hướng dẫn. –

+0

chỉ là một phần thưởng, bạn có thể xem xét việc cài đặt các tệp tsd cho async và lodash vì cả hai đều được cung cấp kèm theo buồm – danba

0

typings.json

{ 
    "dependencies": { 
    "bluebird": "registry:npm/bluebird#3.5.0+20170314181206", 
    "connect": "registry:dt/connect#3.4.0+20160510010627", 
    "express": "registry:dt/express#4.0.0+20170118060322", 
    "express-serve-static-core": "registry:dt/express-serve-static-core#4.0.0+20170324160323", 
    "sails": "registry:npm/sails#0.12.0+20160610190623", 
    "serve-static": "registry:dt/serve-static#1.7.1+20161128184045" 
    }, 
    "globalDependencies": { 
    "es6-shim": "registry:dt/es6-shim#0.31.2+20160726072212", 
    "node": "registry:dt/node#7.0.0+20170322231424", 
    "socket.io": "registry:dt/socket.io#1.4.4+20170313110830" 
    } 
} 

hoan nghênh điều khiển

/** 
    * WelcomeController.ts 
    * 
    * @description :: Server-side logic for managing Welcomes in TS 
    * @help  :: See http://links.sailsjs.org/docs/controllers 
    */ 

    import e = require('express'); 
    import util = require('util'); 

    declare const sails: any; 

    const WelcomeController = { 
     index: function (req: e.Request, res: e.Response, next: Function) { 
     console.log('index() from WelcomeController.ts'); 
     sails.models.welcome.find().limit(1).then((welcome) => { 
      /// TODO: add logger 
      console.log(`welcome page rendering w/ message ${welcome[0].message}`); 
      return res.render('welcome', { 
      welcome: welcome[0].message 
      }); 
     }).catch((err:Error) => { 
      console.error(err.message); 
      return res.render('500', err) 
     }); 


     }, 
     config: function (req: e.Request, res:e.Response, next:Function) { 
     console.log('config() from WelcomeController.ts'); 
     return res.status(200) 
      .send('<h1>sails.config :</h1><pre>' + util.inspect(sails.config) + '<pre>'); 
     } 
    }; 

    module.exports = WelcomeController; 

mô hình

export class Welcome { 
    attributes: any = { 
    id: { 
     type: 'integer', 
     primaryKey: true 
    }, 
    message: { 
     type: 'string', 
     required: true, 
     defaultsTo: 'default message' 
    } 
    }; 
} 

Xem

<div class="default-page"> 
 
    <div class="header"> 
 
    <h1 id="main-title" class="container"></h1> 
 
    <h3 class="container">Message: <code><%= welcome %></code></h3> 
 
    </div> 
 
    <div class="main container clearfix">

và vân vân ... Tôi bắt đầu một dự án ví dụ về git nhưng không bao giờ kết thúc:

https://github.com/aslanvaroqua/sails-ts

Các vấn đề liên quan