Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'typescript-rest' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
return __awaiter(this, void 0, void 0, function* () {
throw new typescript_rest_1.Errors.UnauthorizedError('没有登录');
// return null;
});
}
return __awaiter(this, void 0, void 0, function* () {
if (admin && admin.isAdmin) {
// this.setKeyWord(entry);
const doc = yield core_database_1.CoreDatabase.Account.findOneAndUpdate({
_id: entry.id,
}, entry).exec();
return doc;
}
else {
throw new typescript_rest_1.Errors.ForbiddenError('禁止非管理员更新帐号信息!');
}
});
}
constructor() {
this.server = null;
this.PORT = parseInt(process.env.PORT, 0) || 3600;
this.app = express();
this.config();
mongoose.connect(config.db, {
useMongoClient: true,
});
const db = mongoose.connection;
autoIncrement.initialize(db);
db.on('error', (err) => {
throw new Error('unable to connect to database at ' + config.db + err);
});
typescript_rest_1.Server.buildServices(this.app, ...controllers_1.default);
// TODO: enable for Swagger generation error
// Server.loadServices(this.app, 'controllers/*', __dirname);
typescript_rest_1.Server.swagger(this.app, './dist/swagger.json', '/api-docs', 'localhost:3600', ['http']);
this.app.use((err, req, res, next) => {
if (res.headersSent) {
return next(err);
}
if (err && err.statusCode) {
res.status(err.statusCode);
}
else {
res.status(500);
}
res.send({ error: err });
});
}
this.server = null;
this.PORT = parseInt(process.env.PORT, 0) || 3600;
this.app = express();
this.config();
mongoose.connect(config.db, {
useMongoClient: true,
});
const db = mongoose.connection;
autoIncrement.initialize(db);
db.on('error', (err) => {
throw new Error('unable to connect to database at ' + config.db + err);
});
typescript_rest_1.Server.buildServices(this.app, ...controllers_1.default);
// TODO: enable for Swagger generation error
// Server.loadServices(this.app, 'controllers/*', __dirname);
typescript_rest_1.Server.swagger(this.app, './dist/swagger.json', '/api-docs', 'localhost:3600', ['http']);
this.app.use((err, req, res, next) => {
if (res.headersSent) {
return next(err);
}
if (err && err.statusCode) {
res.status(err.statusCode);
}
else {
res.status(500);
}
res.send({ error: err });
});
}
/**
constructor() {
this.app = express();
this.config();
mongoose.connect(config.db, {
useMongoClient: true,
});
const db = mongoose.connection;
autoIncrement.initialize(db);
db.on('error', (err: any) => {
throw new Error('unable to connect to database at ' + config.db + err);
});
Server.buildServices(this.app, ...controllers);
// TODO: enable for Swagger generation error
// Server.loadServices(this.app, 'controllers/*', __dirname);
Server.swagger(this.app, './dist/swagger.json', '/api-docs', 'localhost:' + this.PORT, ['http']);
this.app.use((
err: any,
req: express.Request,
res: express.Response, next: any) => {
if (res.headersSent) {
return next(err);
}
if (err && err.statusCode) {
res.status(err.statusCode);
} else {
res.status(500);
}
this.config();
mongoose.connect(config.db, {
useMongoClient: true,
});
const db = mongoose.connection;
autoIncrement.initialize(db);
db.on('error', (err: any) => {
throw new Error('unable to connect to database at ' + config.db + err);
});
Server.buildServices(this.app, ...controllers);
// TODO: enable for Swagger generation error
// Server.loadServices(this.app, 'controllers/*', __dirname);
Server.swagger(this.app, './dist/swagger.json', '/api-docs', 'localhost:' + this.PORT, ['http']);
this.app.use((
err: any,
req: express.Request,
res: express.Response, next: any) => {
if (res.headersSent) {
return next(err);
}
if (err && err.statusCode) {
res.status(err.statusCode);
} else {
res.status(500);
}
res.send({ error: err });
});
}
private loadRoutes() {
// TODO: Rename services to controllers, and controllers to services. They're backwards.
const apis = ["scalar", "dimension", "admin", "matrix"].map(a => path.join(__dirname, a, "*.js"));
const router = express.Router();
Server.useIoC();
Server.registerAuthenticator(new MatrixSecurity());
apis.forEach(a => Server.loadServices(router, [a]));
const routes = _.uniq(router.stack.map(r => r.route.path));
for (const route of routes) {
this.app.options(route, (_req, res) => res.sendStatus(200));
LogService.info("Webserver", "Registered route: " + route);
}
this.app.use(router);
// We register the default route last to make sure we don't override anything by accident.
// We'll pass off all other requests to the web app
this.app.get(/(widgets\/|riot\/|\/)*/, (_req, res) => {
res.sendFile(path.join(__dirname, "..", "..", "web", "index.html"));
});
// Set up the error handler
export class NamedEntity implements Entity {
public id: number;
public name: string;
}
@Path('abstract')
export class AbstractEntityEndpoint {
@GET
public get(): NamedEntity {
return new NamedEntity();
}
}
@Path('secure')
@Security(['ROLE_1', 'ROLE_2'], 'access_token')
export class SecureEndpoint {
@GET
public get(): string {
return 'Access Granted';
}
@POST
@Security([], 'user_email')
public post(): string {
return 'Posted';
}
}
@Path('supersecure')
@Security('access_token')
@Security('user_email')
export class SecureEndpoint {
@GET
public get(): string {
return 'Access Granted';
}
@POST
@Security([], 'user_email')
public post(): string {
return 'Posted';
}
}
@Path('supersecure')
@Security('access_token')
@Security('user_email')
@Security()
export class SuperSecureEndpoint {
@GET
public get(): string {
return 'Access Granted';
}
}
@Path('response')
@swagger.Response(400, 'The request format was incorrect.')
@swagger.Response(500, 'There was an unexpected error.')
export class ResponseController {
@GET
public get(): string {
return '42';
}
@GET
public get(): string {
return 'Access Granted';
}
@POST
@Security([], 'user_email')
public post(): string {
return 'Posted';
}
}
@Path('supersecure')
@Security('access_token')
@Security('user_email')
@Security()
export class SuperSecureEndpoint {
@GET
public get(): string {
return 'Access Granted';
}
}
@Path('response')
@swagger.Response(400, 'The request format was incorrect.')
@swagger.Response(500, 'There was an unexpected error.')
export class ResponseController {
@GET
public get(): string {
return '42';
}